1
0
forked from jason/echo

Remove ECHO back-compat shims — CHORUS is a clean break

Decision: CHORUS deploys as fresh vaults on new machines for different
users, so no ECHO adoption path is needed. Removed the Phase-1 shims:
- chorus_config: legacy ECHO_* env aliasing and the read-only
  ~/.claude/echo-memory/config.json fallback
- chorus_queue / chorus_hook_stop: ~/.echo-memory state-dir fallback
- load/doctor/bootstrap/vault_lint/sweep/migrate: the _agent/echo-vault.md
  marker dual-probe; routing drops agent-marker-legacy (36 routes)
- .gitignore, README, CHANGELOG, CHORUS-PLAN.md updated (decision #6;
  Phase 3 no longer migrates the live ECHO vault — fresh bootstrap only)

All suites green: 25/25 unit, scaffold, routing-sync, 4 mock e2e,
run_eval metrics unchanged. Rebuilt chorus-memory.plugin.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-21 13:42:14 -05:00
parent d366ca4032
commit d920f8821f
16 changed files with 58 additions and 165 deletions
+6 -13
View File
@@ -15,23 +15,16 @@ CHORUS is a group-based fork of ECHO (`jason/echo`, v1.5.1, schema 4 — preserv
bootstrap marker to `_agent/chorus-vault.md`; manifest version → 2.0.0-alpha.1.
- Docs' endpoint references now `chorusapi.mpm.to`.
### Back-compat (one major version)
- Legacy `ECHO_*` env vars are adopted as `CHORUS_*` at import when the new name is unset.
- A legacy `~/.claude/echo-memory/config.json` is read (never written) when no CHORUS
config exists; `config`/`doctor` report the legacy source.
- A legacy `~/.echo-memory/` state dir is honored when `~/.chorus-memory/` doesn't exist
yet, so queued offline writes aren't stranded.
- The bootstrap probe (`load`, `doctor`, `bootstrap`, `vault_lint`, `sweep`, `migrate`)
falls back to a pre-fork `_agent/echo-vault.md` marker; bootstrap's repair pass leaves
a legacy marker in place (the schema migration will rename it) rather than writing a
second marker. `routing.json` gains a read-only `agent-marker-legacy` route.
### No ECHO back-compat — clean break
CHORUS deploys as fresh vaults on fresh machines for new users, so it carries **no**
ECHO compatibility: `ECHO_*` env vars, `~/.claude/echo-memory/config.json`,
`~/.echo-memory/`, and a vault's `_agent/echo-vault.md` marker are all ignored.
(Shims for these were built during Phase 1 and then removed by decision.)
### Verified
- 25/25 client unit tests, scaffold checks, routing-doc sync, and all four mock
end-to-end suites green; `run_eval.py` metrics unchanged (0 dupes / 0 false blocks /
0 silent failures / 0 lost offline writes). Six new shim smoke tests (legacy env,
legacy config path, chorus-over-legacy precedence, legacy-marker load/doctor, fresh
vault) pass.
0 silent failures / 0 lost offline writes).
## 1.5.1