This is the text an agent is given — the same bytes for a Slack
turn and for @maxwell in a coding session. The stable block is
cached and only moves when a memory does.
stable
volatile
Both arms rank separately and are fused by reciprocal rank, so a row both found can sit above a closer one — the number is the vector similarity, not the order. Nothing below 0.35 comes back at all. Text needs every word of a one- or two-word query and may miss one word in three of a longer one; a row with every word ranks first. Every hit bumps a recall count, which is what decides who gets into the cached prefix.
Whatever lands here is short‑term, whoever writes it. Identifiers are masked before the row exists — try a RUT, an email or a phone number and watch what is stored.
A thread that has been away is told what moved while it was gone. This goes in the volatile block only, so the cached prefix survives. Nothing new produces nothing at all.
What the nightly consolidation does, on demand: every
short‑term note nobody has dreamed about yet is shown to the agent
beside the long‑term rows nearest to it, and it answers with one
operation per note — add, update,
drop or contradiction. This spends the agent's
chat deployment. A dry run asks the model and writes nothing.
The lookup a coding session makes before it edits a file.