yuzu.docsSiteOpen app
Docs/Memory/The three tiers
Memory

The three tiers

Recent, salient, fading — one item, moving between them on its own.

Memory isn't one store with a size limit. It is three tiers with different physics. Where a fact sits decides whether the presence will still know it next week.

Recent — the working window

The latest turns, verbatim, inside the 128k session window. Nothing here is summarised or scored — it is simply present. Recency is unconditional: even a throwaway line is fully known for as long as it is recent. As the window fills, the oldest raw turns leave it — but they don't vanish, they pass to the compactor.

Salient — pinned for good

Anything mentioned more than once becomes a keyword and is pinned to the 100k long-term store. Pinned memory does not decay. It is recalled into the working window whenever an incoming message's keywords match it — so it costs nothing when irrelevant and is simply there when it matters. It leaves only two ways: you forget it by hand, or something contradicts it.

Fading — on a timer

Said exactly once, a fact enters the fading tier with a ~7-day timer. Each day not reinforced, it weighs less in recall; at expiry it is dropped. This is the default fate of most of what is said — and that is correct. The cure for losing something is simple: mention it again before the timer runs out.

How an item moves

EventFrom → ToTrigger
first mention— → fadingA new keyword with a 7-day timer.
second mentionfading → salientRepetition is the pin signal. Timer removed.
timer expiresfading → goneNo reinforcement within ~7 days. Dropped by the compactor.
contradictionsalient → updatedNew value replaces old; the keyword stays, its content changes.
manual pinany → salientYou pin it directly — same as repetition, without the wait.
manual forgetany → goneYou remove the keyword explicitly. Immediate.

Recall, not retention

A subtle but central point: pinned memory is not always in the window. It is recalledwhen an incoming message's keywords reach it. So a presence with years of salient memory still reasons over a small, relevant working set — the 100k store is the library, the 128k window is the desk.

This is why route changes are free (see Choosing & switching): memory lives in the tiers, not in the model. The model only ever sees what recall placed on the desk.

recall · sketch
keys = keywords(incoming_message)
desk = recent_turns + salient.match(keys) + fading.match(keys)
# desk ≤ 128k; library may be far larger