Complete changelog
Stable release · npm
latest
npm install -g titen-memory@0.7.0
Install guide · Release page · npm package
Changed
- Breaking:
source.refis now required on every observation write. A caller that omitted it received201; it now receives400 VALIDATION_ERROR. The MCP tool spec already stated the obligation, so MCP callers are unaffected; direct HTTP callers must add a pointer back to where the content came from. Migration: add"ref"to thesourceobject onPOST /v1/observations— any stable identifier for the origin (a commit sha, a ticket id, a URL, a tool invocation id). There is no compatibility flag: an entry that cannot be traced to an origin cannot be told apart from junk, which is the whole point of the audit work below. Part of #280.
Added
- Zero-config local mode.
npx titen-memory mcpwith no environment opens or creates~/.titen/memory.db, provisions an organization, workspace, project and owner as real rows, and serves MCP over stdio in-process — no HTTP hop, no key to paste, no outbound call, FTS-only. The served mode and its auth path are unchanged; this is an additional entry point, not a relaxation. Closes #278. - Drop-in compatibility with
@modelcontextprotocol/server-memory. The nine reference-server tool names are served alongside the native ones,search_nodesis routed through Titen retrieval rather than a substring scan, and an existingmemory.jsonis imported on first run. The switching cost is one line of MCP config. Closes #279. recalledprovenance is server-issued.POST /v1/context/compilereturns a signed context token; an observation written while carrying it is stampedsource.type: "recalled"by the server, and a caller that merely declaresrecalledis refused. Stateless HMAC, so no new table and no migration. Known ceiling, stated in the code: the stamp proves the write was made while holding a Titen-issued pack, not that its content came from that pack, so it is a sound lower bound on the recall loop and never an upper one. Closes #280.titen audit. Reports exact-duplicate, near-duplicate, recall-loop, secret-pattern and stale rates over amemory.json, a Mem0 export, or a Titen store. No network, no LLM, no upload, no composite score, no leaderboard. Its first published run is against Titen’s own store and opens by naming two defects in this product. Closes #281.- Concurrent-writer durability suite on both runtimes, with the invariants published before the run and each re-run with its primitive removed to prove the suite can fail. Closes #282.
Evidence
docs/testing/2026-08-07-titen-audit-self-report.md— 17.9% byte-identical duplicates six seconds after write, 96.7% never read back, and the compatibility surface turning one entity into six. It also names the number it cannot report: there is no 32-day Titen store, so nothing in it bounds long-run accumulation.docs/testing/2026-08-07-durability.md— invariants held on both runtimes under concurrent writers.