Repository navigation
fix(agent): harden evolution recovery - #106
Merged
Pepps233 merged 6 commits intoAug 23, 2026
Merged
Conversation
- Prevents incompatible durable schemas from entering artifacts, jobs, or ledger history - Preserves append-only event identity across retries and concurrent writers
- Keeps late or incompatible traces from shifting or blocking the frozen evidence range - Makes adversarial transcript content explicitly non-authoritative at the model boundary
- Makes queue, stage, budget, coverage, disposition, conflict, and recovery state inspectable - Derives operational metrics from durable checkpoints and ledger events without adding them to evidence
- Recovers abandoned work explicitly and isolates concurrent trigger and lease races - Preserves idempotent model, tool, evidence, mutation, and prompt-boundary behavior - Verifies deterministic selection and disabled target boundaries end to end
- Maps each durable failure state to its detection and safe recovery action - Records observability, evidence isolation, and deferred extension boundaries
- Distinguish created, attached, and rejected manual trigger results in the TUI - Prevent empty evidence from being reported as active background work
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.
Summary
Hardens the durable evolution pipeline end to end with validated persistence, isolated untrusted evidence, resumable failure handling, operational observability, and recovery-focused boundary coverage.
Reasoning
Durable artifacts, jobs, and ledger entries are rejected before use when their schema versions, metadata digests, or identities do not match their content.
Trace materialization isolates corrupt records, keeps cursors stable by creation order, and treats all collected evidence as untrusted model input.
Interrupted, abandoned, concurrent, and stale-lease work has explicit recovery behavior and observable outcomes, while this PR does not add post-activation evaluation or automatic regression rollback behavior.
Changes
Testing
npm run checknode ../../node_modules/vitest/dist/cli.js --run test/control-plane.test.ts test/control-service.test.ts test/curator.test.ts test/filesystem-store.test.ts test/proposal-ranking.test.ts test/reflector.test.ts test/targets.test.tsfrompackages/evolutionnode ../../node_modules/vitest/dist/cli.js --run test/evolution-menu.test.ts test/evolution-runtime.test.ts test/interactive-mode-share-command.test.ts test/suite/agent-session-harness-version.test.tsfrompackages/coding-agent./test.shwith all workspaces passing except three reproducible timeouts in unchangedsubagent-actions.test.tsandsubagent-coordination.test.tsscheduling code; the run reported 2,148 coding-agent tests passed, 49 skipped, and 71 evolution tests passed/evolveoverview, process restart, empty-evidence recovery reporting, disabled active-job actions, and isolated session termination