The 70-day expiry
Dormancy stopped being a membership test. 167/167 live, R@6 flat at 0.2744 out to +365 d.
Append-only, per repo, measured. A 1,500-token brief rides every dispatch.
NewLesion harness →
Still frame · 20,746 nodes, 40,033 synapses
Episodic. docket.jsonl, append-only, zero LLM calls, 19 event kinds already firing.
Semantic. 167 typed, anchored, heat-ranked claims. 652 links, one pinned.
Delivery. Five blocks under a hard cap, on the first user message of every dispatch.
Trigram Dice at 0.82 calls two entries the same entry. A set of discriminating literals runs first, and says they are not.
1.0Write gate →Ebbinghaus decay with logarithmic reinforcement. A pin is an exemption from time, never a multiplier on it.
2.0Thermal model →
A dense leg inside a rank fusion is a query-independent prior, and it wins. BM25F is the one leg left standing.
3.0Retrieval →Five ceilings that sum past the budget on purpose. The last guard re-reads the assembled text and drops whole blocks.
4.0Injection →
A paired bootstrap over gold sets, a positive control allowed to fail, and a placebo that must read exactly zero.
5.0The bench →Dormancy stopped being a membership test. 167/167 live, R@6 flat at 0.2744 out to +365 d.
MIN_INJECT_STRENGTH refused 0 of 503 injected rows across 85 queries, so it went.
Rendered rows 2.38 → 3.04 and spend 240.1 → 261.8 of 300, for zero retrieval work.
LongMemEval-S R@10 97.80% and LoCoMo-10 95.96%, on the same retrieve().
“The canon does not merely fail to beat grep here. It loses, measurably, and the instrument can see it.”
“PIN_PREPEND reads HARMFUL / DELETE on every run. Kept anyway, with the reason written down.”
This repo’s canon today: 168 rows, 294,373 bytes → 167 entries, 652 links, 1 pinned. The honest ledger →