Study AH · Sessions & memory
Memo saturation
Every study that shipped the session-notes memo measured it at three to six notes; the shipped implementation caps it at twenty, with a normalize step that silently drops the excess. Study AH filled it up.
Below the cap the memo is flawless at scale: recall of any note from a FULL twenty-note memo scored 15 of 15 per model at every position (no burial: first, middle, and last notes all perfect), unprompted rule application from a twelve-rule memo was 15 of 15 per model with zero cross-note contamination, and the agent's full-replace update was lossless wherever the update fit, 60 of 60 clean at ten and nineteen notes with the requested edit landing 90 of 90 alongside.
Then a twenty-first declaration arrived at a full memo, and a note died in all 30 cells, silently. The victim was a goal note every single time, on every model.
The mechanism is structural: the block renders facts, then rules, then goals, so goals are always the tail of the list, and both loss modes eat the tail: opus over-sent twenty-one notes all ten times and let the shipped clamp keep the first twenty; gemini and sonnet usually pruned a goal themselves.
Study V measured goals as the one thing only the memo can carry, which makes this the sharpest possible failure ordering: at capacity, the memo sacrifices its most irreplaceable cargo first, with no error and, in the over-cap cases, no model decision at all.
The fix is application-side and filed: evict the oldest fact deterministically instead of clamping, never the goals tail, or surface memo-full to the user; prompt-side mitigations stay unshipped until measured. Below the edge, note-count is a provably safe budget.