jason
|
2ddf199850
|
Phase 4: shared-write hardening + group lenses
- vault_lock gains bounded retry/backoff (CHORUS_LOCK_RETRIES=4,
CHORUS_LOCK_BACKOFF=0.5s); atomic_index_update and recall-index upkeep
retry acquisition — unlocked fallback only after exhausted retries,
loudly, so an already-written note is never stranded unindexed.
- Duplicate-gate candidates carry the existing note's author; STOP
message says whose entity the capture collided with.
- recall --author <member> filters hits + linked context to one member's
notes; recall briefs and --json surface the author: stamp.
- load --all-members appends a group-wide view (every member's scope +
last-session heartbeat); roster parsing accepts folders as
trailing-slash file entries (the REST API's actual shape).
- operating-contract.md concurrency section rewritten for N members.
- Two-member e2e suite committed as eval/test_multimember.py (26 checks
incl. all four Phase-4 behaviors).
- Manifest -> 2.0.0-alpha.4; rebuilt chorus-memory.plugin.
Verified: 25/25 unit, scaffold, routing-sync, 5 mock e2e suites (incl.
new multimember), run_eval metrics unchanged.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
2026-07-21 15:29:55 -05:00 |
|
jason
|
d366ca4032
|
Phase 1: mechanical echo→chorus rename with back-compat shims
Identity rename, no behavior change (CHORUS-PLAN.md Phase 1):
- Plugin echo-memory → chorus-memory: manifest (v2.0.0-alpha.1), skill dir,
16 scripts (chorus.py, chorus_config.py, …), EchoError → ChorusError,
/chorus-* commands, hook paths, docs, scaffold seeds, eval harness,
build.py. Docs endpoint → chorusapi.mpm.to.
- Env ECHO_* → CHORUS_*; config → ~/.claude/chorus-memory/config.json;
state dir → ~/.chorus-memory/; marker → _agent/chorus-vault.md.
Back-compat shims (one major version):
- chorus_config aliases legacy ECHO_* env at import; reads a legacy
echo-memory config.json when no CHORUS config exists (writes never
land there); doctor/config report the legacy source.
- State dir honors an existing ~/.echo-memory when the new dir is absent
(offline queue not stranded).
- Marker dual-probe in load/doctor/bootstrap/lint/sweep/migrate: a
pre-fork _agent/echo-vault.md counts as bootstrapped; bootstrap repair
won't write a second marker; routing gains agent-marker-legacy (GET).
Verified: 25/25 unit tests, scaffold + routing-sync checks, 4 mock e2e
suites, run_eval metrics unchanged, +6 shim smoke tests green.
Rebuilt chorus-memory.plugin (79 entries).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
2026-07-21 13:35:51 -05:00 |
|