Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Goal
Preserve the declared recovery semantics of each operation when
AgentLoopTaskRunnerpersists durable attempts.Why
The durable executor relies on
attempts.recovery_classto decide how an interrupted operation may be recovered. The current tool-call path resolves the tool descriptor but persistsIDEMPOTENTunconditionally, which can incorrectly classifyUNSAFEeffects as replayable.Plan
RecoveryClassthrough the tool-call execution path.IDEMPOTENT.INDETERMINATEand is not replayed.Scope
This PR intentionally does not address egress enforcement, actor attribution, MCP wiring, worker orchestration, Android hardware validation, or schema changes.
Related to the durable execution/recovery work in RFC-0009 and the MVP pipeline.