Inside Saanora's memory: how Mark keeps up when your facts change
Saanora's memory doesn't just store what you told Mark — it retires what stopped being true, picks what's relevant to the question you actually asked, and lets you read and edit every line of it.
Anyone who uses an AI assistant for more than a few weeks ends up with two complaints, and they sound like opposites. The first is “it forgot something I told it ages ago.” The second is “it keeps bringing up something that stopped being true months back.”
They are the same bug. An assistant that remembers badly produces both, and this release is Saanora's answer to it — a rebuild of how Mark decides what is worth keeping, what has been replaced, and what belongs in the conversation you are having right now.
The bug isn't forgetting — it's keeping everything
The naive version of memory stores every fact it is handed. Tell it you are 19 in March, mention turning 20 in November, and it now holds both. Nothing in the second sentence says “replace the first”, so nothing does.
The model is then handed two statements that cannot both be true, with no signal about which is current. It answers from whichever it happens to read first. Half the time it is right, which is worse than always being wrong, because you stop checking.
Now run that for a year. Old jobs, old cities, old deadlines, old preferences — all sitting beside the current ones, all weighted the same. The assistant has not forgotten anything. That is precisely the problem.
Mark retires facts instead of stacking them
Mark now keys every remembered fact by what it is about rather than by how it was worded. “User is 19 years old” and “User is 20 years old” land on the same subject, so the newer one retires the older automatically — no instruction from you, no cleanup task.
Retires, not deletes. The superseded fact stays in the record, flagged, so nothing is lost if the match was wrong and you can always see what Mark used to believe. Losing something true is a worse failure than carrying something stale, because the stale one is visible and correctable and the lost one is not.
It also collapses the same fact said three different ways. Straight and curly apostrophes are treated as one thing, “September 9” and “September 9th” as one date, “start” and “starting” as one word. Before this, a single fact you happened to mention in three conversations became three rows competing for the same space.
Recent and relevant are not the same thing
The second failure is quieter. Most assistants choose which memories to use by recency — take the newest forty and hope. That works beautifully on a fresh account and gets worse every week you use it.
Once Saanora knows a couple of hundred things about you, “the newest forty” is an arbitrary slice. Something you mentioned once, six months ago, that is exactly what today's question turns on, sits buried under everything you have said since. Ask about your dissertation, get told about your dog.
Mark now weights memories against the question in front of it. A word that appears in one memory out of eighty is treated as a strong signal; a word that appears in all eighty carries none. A fact from ten months ago surfaces the moment it becomes the relevant one.
A slice of the most recent memories is always included regardless of score — because “I just told you that” is the failure people notice instantly, and no clever ranking should ever be able to cause it.
Not everything you say is a fact about you
There is a third problem, and it is about taste rather than algorithms: most of what you say is not a fact about you.
We went and read our own production data before writing any of this. It held rows like “User wants detailed preparation help.” True for one afternoon. As a permanent fact about a person it means nothing, and it was crowding out the ones that mattered. Ten rows held roughly four actual facts.
Mark now filters before it stores. Passing requests, restatements of the current task, observations about the conversation rather than about you — none of those become long-term memory. What survives is the kind of thing that will still be true, and still be useful, in six months.
Mark knows where each memory came from
Every memory Mark uses now arrives with where it was learned and how long ago. That sounds like bookkeeping. It changes the behaviour.
Mark can weigh a fact it picked up five weeks ago in your thesis chat against one from yesterday. It can say “you mentioned this when we were working on your thesis” instead of producing a fact from nowhere — which is most of the difference between memory that feels useful and memory that feels like being watched.
And when something looks out of date, it has enough context to ask you rather than assert it.
Memory that stays inside a project
Some work should not leak into everything else — a client engagement, a health question, a surprise for someone who shares your laptop.
A Saanora project can be set to keep its memory to itself. What Mark learns inside stays inside, and inside that project it will not draw on what it knows from the rest of your account.
You can read every line of it
All of it is readable. Settings → Memory lists every fact Mark holds about you; you can edit any line, delete any line, or add one yourself. Correcting something there retires the stale version exactly as if you had said it in conversation.
We think that is the part that makes memory acceptable rather than merely impressive. An assistant that quietly builds a profile you cannot inspect is not offering you a feature. Saanora shows you the whole file.