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
Jason Stedwell
3b6c3053cb
ver 1.5.1 — duplicate-gate precision (common tokens, cross-kind)
...
Live 1.5.0 use caught the gate blocking a decision note over the single
vault-common token "echo" (min-normalized overlap gives any one-token
entity a 1.0 score). New echo_index.gate_candidates() + token_df():
- gate blocks same-kind candidates only; cross-kind name collisions
(a decision titled after its project) warn instead of blocking
- a lone shared token blocks only when unique to that entity (df == 1);
multi-token overlaps still block
fuzzy_candidates (advisory warnings) and exit-76/--merge-into/--force
semantics unchanged. +3 offline unit tests, gate e2e cases restructured
+2 new; verified live both directions. All suites green.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-03 13:03:07 -05:00
Jason Stedwell
be3fd36ebf
ver 1.5.0 — six-improvement pass: retention, routing, self-firing memory
...
1. capture-update keeps the whole body (was truncating to first line)
2. frontmatter completeness: kind-default status + kind-seeded tags at
capture, fm create-or-replace, incomplete-frontmatter lint, sweep
backfill (one data source: KIND_STATUS/KIND_REQUIRED_FM)
3. pre-write duplicate gate (exit 76, --merge-into/--force)
4. recall corpus + ranking: sessions/journal indexed (down-weighted),
BM25 x freshness x status fusion, recall --json, index schema 2
5. session hooks: SessionStart auto-load, Stop reflection nudge
6. one-tap triage verb with processing-log audit; --json on read verbs
+22 mock end-to-end tests; all suites green. Docs current (README,
CHANGELOG, SKILL.md, commands, references, MAINTENANCE, eval README).
Drops tracked .DS_Store (gitignored); retires README-gretchen.md
(moved to gitignored dist/); adds the field report that drove item 2.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-03 12:57:52 -05:00