1
0
forked from jason/echo

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>
This commit is contained in:
Jason Stedwell
2026-07-03 12:57:52 -05:00
parent e76add6192
commit be3fd36ebf
31 changed files with 1209 additions and 174 deletions
+11 -5
View File
@@ -34,9 +34,13 @@ The repo root carries every historical build (`echo-memory-0.6.0.plugin` …
- [ ] `eval/run_eval.py` still benchmarks **0.6 vs 0.7** — refresh to current (open H4 follow-up).
- [x] README version-history has a **1.0.0** entry; title bumped to v1.0.0.
- [x] Scrub the literal bearer token from docs → `$ECHO_KEY` placeholder (M1, done:
`api-reference.md` ×11, `SKILL.md`, `bootstrap.md`, eval harness). Operator key setup
documented in `API-KEY-SETUP.md`. Last remaining copy is `echo.py` `DEFAULT_KEY`
(deprecated fallback) — **remove once `ECHO_KEY` is set in every environment**.
`api-reference.md` ×11, `SKILL.md`, `bootstrap.md`, eval harness).
**Superseded in 1.3/1.4:** key resolution now lives in `echo_config.py`
(machine-local `~/.claude/echo-memory/config.json`, `ECHO_*` env overrides, and
empty-in-source `DEFAULT_*` constants filled only by `build.py --bake-key` for
per-user artifacts in gitignored `dist/`). `API-KEY-SETUP.md` and the old
`~/.echo-memory/credentials` fallback are gone; the committed tree ships zero
credentials.
## Building the `.plugin` artifact
@@ -44,8 +48,10 @@ The repo root carries every historical build (`echo-memory-0.6.0.plugin` …
read from the manifest) and refreshes the `echo-memory.plugin` pointer. Deterministic
(sorted entries + fixed timestamp → byte-identical rebuilds). Flags:
- `--strip-key` — blank `echo.py` `DEFAULT_KEY` so **no token ships** (runtime then needs
`ECHO_KEY` or `~/.echo-memory/credentials`). Use this once the key is set everywhere.
- `--strip-key`force-blank the `echo_config.py` `DEFAULT_*` constants for a guaranteed
token-free artifact (a clean source build is already token-free; this is the belt-and-braces flag).
- `--bake-key --from <config.json> [--label <name>]` — per-user secret-bearing artifact in
gitignored `dist/`; deliver directly to that one user, never commit (see README).
- `--no-pointer` — skip refreshing `echo-memory.plugin`.
- `--outdir DIR` — write artifacts elsewhere.