Milla Jovovich once played a woman who wakes up in a mansion with no idea who she is. That was Resident Evil, in 2002, and it also describes every session I have ever started with an AI model. The assistant opens its eyes, looks around my code and has no memory of yesterday. It does not know that we spent Thursday evening moving every deploy off GitHub, or that I would rather eat the keyboard than see an em dash in my prose.
Since the spring that problem has had an answer in my house, and Milla is one of the two people I have to thank for it. MemPalace is the open-source memory system she and Ben Sigman released in April. Within a month I had forked it and rebuilt it around the way I work, and it is now the tool I would least like to lose. This is a report on six months of living with it, on what her latest release did for it this week, and, I will admit, a love letter.
Two kinds of forgetting
A language model forgets in two ways, and only one of them is obvious.
The obvious one is the session. Each conversation starts empty. Whatever we worked out yesterday is gone unless somebody writes it down and hands it back.
The other is the training cutoff. Everything a model knows about the world was fixed on the day its training stopped, and from then on that knowledge only gets older. The model that helped me draft this piece stopped learning in June. It has never heard of the four releases MemPalace shipped between August and October, or of the evening GitHub suspended my account. It knew about all of them before it wrote a word, because the first thing every session does is ask the palace.
Milla has played this one too. In The Fifth Element, Leeloo learns the whole of human history from a screen in one sitting, A to Z. That is more or less how a model learns. It is also why its history stops on the day somebody switches the screen off.
What the palace is
Mine runs on a small virtual machine at home. Every machine I work from, and every way I talk to Claude, from the terminal on Linux and Windows to the chat in a browser, reads from and writes to the same server. Upstream MemPalace keeps its palace on the machine it runs on. My fork moved everything into one PostgreSQL database so that all of them share a single memory.
Today it holds a little over 143,000 drawers, which is the palace's word for a stored memory, filed into wings, roughly one per project. They come in three tiers. At the top sit just under a thousand curated memories: decisions, preferences, how a system works. In the middle are summaries of each project's current state. At the bottom is the raw material, every working session since the spring, chunked and searchable. A search weighs all three and lets a small ranking model decide the final order.
The protocol is two rules. Read before speaking: every session searches the palace before it answers anything about my projects. Write before leaving: every session ends with a diary entry, and anything worth keeping becomes a memory.
A rule said once, kept everywhere
The best example is the silliest one. I do not like em dashes. They are the clearest sign that a paragraph came out of a machine, and I have said so to Claude in at least four separate projects: this website, a pitch deck, the Wegweiser codebase and a client's site. Each of those projects kept its own little memory file, and each one learned the rule from scratch. In Wegweiser alone the clean-up took out 4,600 dashes from 678 files.
In August I added a second offence. My words, exactly as the palace recorded them: "don't overuse the word quietly. what is the obsession with it? either way, it is high up there on my hatelist with em-dashes". The memory written that day says in so many words that it supersedes an older, gentler rule, which had only asked for the word to be rationed. The new one says it is out.
Because the palace is shared, I have not had to say either thing again in any project. This article contains no em dashes, and nothing in it happens quietly, except in the sentence where I tell you so. You are welcome.
The same holds for things that matter more. When GitHub suspended my account last week, the Wegweiser session that moved its deploys to my own Gitea wrote down what it had done and why. Within a day this website and the palace's own code had moved too. Every later session, in every project, could look up what had happened, which beats learning it from a refused push.
Memory goes stale too
A memory that keeps everything also keeps everything that has stopped being true, so the palace needs housekeeping like any other store.
My favourite exhibit dates from 29 April. The first palace had broken and I was repairing it, so a memory was written telling every future session not to use the palace. It was resolved that afternoon, and the breakage is what pushed me to rebuild on PostgreSQL. The memory is still there, marked as history. For a few hours, though, the most authoritative thing in my memory was an instruction to ignore my memory.
The failures nobody sees are worse. One of the 25 questions I use to grade the palace expected a server address that had changed in May. The exam itself had gone stale, and a tuning change that looked like an improvement turned out to be helping an old answer pass an old question. Worse still, the summaries that describe each project's current state stopped updating on 3 July, because the service that wrote them had lost track of the machine doing the summarising. For more than three months the current state of every project was a snapshot of early summer, and every automated health check stayed green.
So the palace now manages its own age. Every drawer records the date its content refers to, separately from the date it was filed. A newer memory can be linked as superseding an older one, and superseded drawers drop out of search by default, so no session is handed both versions and left to choose. A nightly job keeps the curated tier fed from recent work. The 25-question exam gates every deploy: if the right answer lands in the top three results for fewer than 88% of the questions, the new code does not ship.
What Milla's update did
On 23 October I asked a simple question. How is the palace doing, and is there anything in Milla's recent releases worth taking? Her repository shipped versions 3.8 to 3.11 between 23 August and 14 October. My fork runs on a different storage engine, so most of those releases fixed problems I do not have.
One of them I did have. A contributor's fix in version 3.11.0 stopped the conversation chunker from discarding text. The old code ended an assistant's reply at the first line that began with three dashes, which is how Markdown draws a horizontal rule, and Claude draws horizontal rules constantly. Everything after the rule was lost. My fork carried identical code, and 50,127 of my stored conversation chunks had come through it.
The original transcripts were still on disk, so I took the fix and re-read all 564 sessions. It took an hour, with no errors, and the searchable archive of my own past work went from 50,153 pieces to 140,875. Whole stretches of reasoning that used to stop at a horizontal rule are back.
Reading her changelog also made me look hard at my own house, which turned up some embarrassments. When I rebuilt the database in the spring, the old table was renamed and kept its index, so the setup script found an index with the right name, assumed its work was done and moved on. The old table and its index were later deleted. From then on every search read the entire table, while the code dutifully set a tuning knob for the missing index on every single query. The palace's virtual machine had also lost half its memory in a reboot, and the ranking model was running on a processor while a perfectly good graphics card sat in another machine in the house.
All of that is fixed. The vector lookup went from 110 milliseconds to 6. The median search went from 553 milliseconds to 196, on a corpus that nearly tripled. The share of questions with the right answer somewhere in the top ten rose from 92% to 96%, and the top-three score held at 88%. To be fair to everyone involved, Milla's release brought back the text, and the speed came from housekeeping her release prompted. I am happy to share the credit, mostly with her.
A note on numbers
MemPalace launched with benchmark claims that people were arguing about within hours. I am not quoting any of them. Every number in this piece comes from my own palace and my own 25-question exam, and I would rather report a modest number I can stand behind.
Dear Milla
I have adored you since a woman with orange hair fell through the roof of a taxi. You have spent a career playing women who wake up with no memory and save the world anyway, and then you went and built them a memory. Mine now remembers my projects and my grudges against punctuation on every machine I own, because of something you gave away for free.
Thank you. If you are ever in Suffolk, there is a wing in the palace with your name on it and the kettle is on. Ben, thank you as well, though this part of the letter is not for you.
My affection is undying, and unlike my summaries in July, it does not go stale.