fix: reconcile interrupted executions with single-claim recovery grants #91
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "fix/recovery-claim-evidence"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Scope
Reconcile interrupted dispatcher executions using retained tool evidence, without declaring opaque runtime turns replay-safe. Optional trusted recovery policy and explicit one-claim resolutions. Explicit restart limits enforced when configured; omitted limit permissive. Retain original session until replacement registered.
Pi archive exports structured tool calls (ID, name, arguments) and result correlation. Handover is evidence, not new authority.
Critical assessment of previous recovery P1
Old finding recovery-resolution-permanent-bypass is addressed: resolutions are audit history only. A restarts-bound recoveryGrant is consumed atomically on claim, never persisted as claimedRecoveryAction. Reopen/claim/crash/strict-policy regression requires new authorization. Existing old live review ledger not mutated or falsely called passed.
Validation
Rebased onto merged continuation PR#90. Actual final candidate full524/524 tests PASS, typecheck/build/diffcheck PASS. Integrated disk-backed intent+transcript reload -> actual Pi adapter export/Harness reconciliation -> DispatcherRuntime admission -> durable settlement -> second reopen reuses settled result without another admission. SDK session and runtime admission are controlled stand-ins, not proof of real-model no-duplicate behavior. No external effect replay performed.
Review/delivery transparency
Author counterchecked findings and tests. Earlier exactly2 additional independent rounds covered review repair, not this recovery patch; no third round or budget reset fabricated. Operator explicitly clarified no publication restriction and authorized commit/push/PR/merge. Preserve unrelated dirty drafts. Merge/build does not activate deployment; GitOps owns rollout.