Repository navigation
v3.0.1
Summary
Correctness release. Fixes five defects found by a cross-file invariant audit — a prompt-injection channel through CURRENT.md, a store that could fail its own schema validator, bi-temporal queries answered from a stale cache entry, a tiered context path that silently dropped as_of, and an access counter that never accumulated.
Also makes every published number machine-verified, and redesigns the website.
Full Changelog: v3.0.0...v3.0.1
Fixed
- Prompt-injection channel through
CURRENT.md— the stored memory was sanitised, but the constraint copy written toCURRENT.mdwas not. BecauseCURRENT.mdis replayed into every later prompt, one captured constraint could reach every future session in the workspace. Sanitisation now happens at the sink. - Store could fail its own schema validator —
stale_embedderwas written onto entries but rejected as an unknown property, so every entry that failed embedding was permanently reported as corrupt. - Bi-temporal queries served the wrong snapshot — the context cache key omitted
as_of, so "what did we believe in Q1?" could be answered from a 30-second-old current-state entry. - Tiered context dropped
as_ofanddepth—get_context(tier=1, as_of=…)returned the current state while the untiered path returned the historical one. - Access counter never accumulated — every read reset it to its baseline, silently disarming the access-frequency ranking axis, the LangMem frequency axis and the access-weighted retention half-life.
- Tier token budget was declared but never enforced — 327 tokens against a 200-token budget.
- MCP server advertised a stale version (
1.6.0while the package was at3.0.0), three MCP tools were callable but not discoverable,memory_deletehonoured undocumented flags that disabled its dry-run default,restoreSnapshotRinghad no path containment, and the CLI--helptext repeated an incorrect platform count.
Changed
- Every published number is now generated from the source. The site advertised "80+ coding agents" (52), "45+ credential shapes" (8 rule families) and "69 tools across 6 profiles" (115 across 7), while the README was already honest at 52 — every figure was hand-typed into prose in five files, and nothing compared any of them to the code.
scripts/generate-claims.tsnow derives them fromsrc/, the website imports the manifest, and a test fails the build on any drift. - Documentation split into human and agent layers —
docs/agent-reference.md(the agent contract),docs/cli-reference.md(generated fromsrc/),docs/roadmap.md, and a README restructured around a 60-second start and a documentation map. - Website redesign — shared navigation, footer and logo components (the 404 page previously had no navigation at all), a working mobile menu, a complete SEO head, and an agent-readable
llms.txtlayer. - New deterministic brand pipeline — a redesigned monogram, favicon, PWA icons, Open Graph card, Twitter card and README banner, rasterised with resvg from the fonts already vendored in the repository. The old pipeline needed a 150MB browser download to flatten a vector, and the Pages workflow was still calling it — which would have reverted every new asset on each deploy.
Verification
bun test— 1336 pass, 0 fail, 6128 assertions across 205 files (was 1309)bunx tsc --noEmit— cleanaudit-a11y.ts— 0 critical/serious across 4 pages, 26/26 contrast pairs at WCAG 2.2 AAaudit-visual.ts— 9/9 responsive viewports
Breaking changes
None. The public API, CLI surface and MCP tool names are unchanged.