Repository navigation
Conversation
- Distinguishes directory-scoped evidence totals from the global harness selection - Prevents users from interpreting different project counts as harness state divergence
- Aligns unprocessed token and invocation totals with the globally selected harness - Locks active traces and exposes only an immutable global prefix to keep cursors stable across processes
- Keeps the overview and manual-start confirmation aligned with shared evidence state - Makes the evidence and selected harness scopes explicit in the TUI
- Lets completed invocations advance global evidence while older sessions remain active - Preserves monotonic ingestion cursors across concurrent processes
- Publishes immutable operation intervals before process exit - Preserves unique evidence across concurrent sessions and overlapping operations - Stabilizes RPC shutdown readiness coverage
- Documents operation-level rollover and multi-file process traces - Clarifies interval termination evidence
- Keeps implementation details out of the user-facing overview - Makes evolution actions and automatic status easier to scan
- Allows fresh manual runs after non-resumable failures while preserving recoverable work\n- Exposes terminal timestamps and unavailable coverage so clients can distinguish failed reflection
- Polls durable active-job state so menus update when another process owns the worker\n- Makes terminal results, timestamps, and incomplete coverage explicit to users
- Keep failed jobs from advancing successful evolution state and persist private per-job diagnostics. - Scope reflector tools to each node and return recoverable denials to the model.
- Keep canonical artifact IDs out of model-authored fields - Preserve deterministic resolution across retries and recovery - Stabilize subagent startup and cancellation exposed by the suite
- Accept missing evidence type prefixes only when the typed alias exists in the current node catalog - Audit each normalization while preserving strict rejection of wrong-kind, unavailable, duplicate, and cross-node references
- Removes reflector tools that duplicated inline catalogs while retaining search, slice reads, and boundary repair - Combines existing curator guidance inspection and preserves immutable slice continuation metadata
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.
work in progress
Summary
Makes
/evolveuse one global, live evidence corpus for the globally selected harness.Completed prompts become visible while Diffex processes remain running, and active evolution progress stays current even when another process owns the worker.
Reasoning
Evolution persistence and trace filtering were keyed by the launch directory even though harness selection and evolution memory are global.
That allowed the same harness revision to report different token and invocation totals across working directories.
Process-owned traces also remained mutable and locked until CLI shutdown, so completed prompts could not be discovered safely while sessions were running.
Ignoring active locks would let the reflector cache changing traces and could duplicate evidence.
Immutable operation intervals preserve stable evidence while retaining unique trace files and lock-protected ordering across concurrent processes.
Evolution progress events are process-local, but evolution jobs are global and durable.
Polling active durable state keeps View and Browse accurate when a peer process executes the job.
Terminally failed jobs are non-resumable, so they no longer block or capture future manual evolution attempts.
Changes
Testing
npm run checknode ../../node_modules/vitest/dist/cli.js --run test/control-service.test.tsfrompackages/evolutionnode ../../node_modules/vitest/dist/cli.js --run test/evolution-menu.test.ts test/interactive-mode-evolution.test.tsfrompackages/coding-agent/Users/jialeyu/Projects/diffex-newand/Users/jialeyu/Projects/test_diffex/test_2without exiting either process..jsonlfiles and the shared index admitted each once.diffex-testsession started a fresh manual evolution after the prior terminal failure.Evolve [Started], enabled View, and enabled Cancel.