Engineering · Chapter 5 of 16·2 min read
The Memory Feature We Shipped Before It Actually Worked
We announced memory brains on July 15th. They didn't actually build a brain until July 21st. They didn't even run on their own until August 1st. Here's what "shipped" really meant.

Listen to this story
We announced it before it was true
July 15th, "memory brains" shipped — auto topic clusters, the idea that Nia could group what it knew about you into something closer to actual understanding than a flat list of saved facts. It was in the code, wired into the product, real and running.
It just wasn't doing what its own name claimed yet.
It matched memories by literally searching for the same words
One day later, a fix landed: "recall_brain now matches brains by semantic similarity, not substring." Read that plainly — the day after launch, asking Nia to recall something worked closer to a keyword search than anything resembling actual understanding. If your question didn't share the same words as what was stored, it often didn't find it at all.
The feature was named for what it was supposed to become, not what it did yet.
It didn't even build the brains yet
Six days after launch, on July 21st, the fix that actually mattered landed: "recall_brain actually builds brains now." The core job the entire feature was named after — building the brain in the first place — wasn't reliably happening until this point.
And nothing was making it run on its own
Even once the building and the recalling both genuinely worked, there was a gap nobody had closed: nothing in the CLI ever triggered any of it automatically. The logic existed and worked correctly — but only if something told it to run. In practice, that meant it silently did nothing for most people using it, because starting a background process by hand isn't a step anyone should have to know about.
That didn't get wired in until August 1st — over two weeks after the feature's original announcement.
Even then, it had to be caught crash-looping
August 3rd added health tracking and a real scheduler, closer to how the codebase's file-indexing system already managed its own background work. And on August 26th — two separate fixes, same day — a restart guard had to be added after the memory dreamer and a related summarizer were found looping on their own crash-restarts instead of just running once and going idle.
What "shipped" actually means here
None of this is a story about anything going particularly wrong. It's closer to the normal, unglamorous shape of building something real: a feature's first commit and a feature actually doing its job reliably are two different dates, and the gap between them is where most of the actual engineering happens. The changelog said July 15th. The truth is closer to six weeks.
