Repository navigation
feat(agent): add evolution memory writer - #104
Merged
Merged
Conversation
- Applies selected EVOLVE.md deltas to one validated candidate without rewriting unrelated bytes - Preserves stable memory identity and activates one compare-and-swap harness revision with durable audit data
- Rejects staged outputs whose batch, operations, base, or exact diff diverge from durable candidate data - Prevents activation results from recording a different revision than the one selected by the Writer
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
Implements deterministic EVOLVE.md mutation writing and atomic harness activation over the selected proposal groups emitted by the evidence-ranking pipeline in #103, without enabling later interactive controls, prompt-boundary refresh, post-activation evaluation, or automated rollback behavior.
The Writer captures stable memory identity outside the rendered prompt, validates structured ADD, REMOVE, and REPLACE operations against the frozen base revision, and applies the complete selected batch to one temporary candidate before advancing the harness with compare-and-swap semantics.
It persists exact reversible diffs, proposal and evidence provenance, operation IDs, parent and resulting revisions, activation state, and the rollback parent so failed batches leave the prior harness active and interrupted retries remain idempotent.
Reasoning
The Writer preserves stable memory identity, validates a complete mutation batch before activation, and uses compare-and-swap semantics so concurrent harness changes cannot be overwritten.
Candidate and activation receipts remain durable and idempotent, while failed batches leave the active harness unchanged.
Changes
Testing
node ../../node_modules/vitest/dist/cli.js --run test/evolution-memory-writer.test.ts test/control-plane.test.tsnpm run check./test.sh