fix: reconcile interrupted executions with single-claim recovery grants #91

Merged
severus-snape merged 1 commit from fix/recovery-claim-evidence into main 2026-10-26 19:27:58 +00:00
Collaborator

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.

## 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.
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
harness/core!91
No description provided.