
Yurumi: the memory that had to forget
Four memory layers with different lifetimes, a TTL that never actually expired, and the decision that fixed it: sleeping is not deleting. How the memory lifecycle stopped being a loose field in the payload.
5 posts

Four memory layers with different lifetimes, a TTL that never actually expired, and the decision that fixed it: sleeping is not deleting. How the memory lifecycle stopped being a loose field in the payload.

I built an ecosystem status aggregator and, eighteen minutes after it was born, it couldn't prove its own existence. The fix wasn't code: it was deciding what counts as evidence. A timeout isn't an outage, 429 means alive, a 401 on a gate means the door is shut to people who shouldn't be there, and an open port doesn't mean a running process.

Before swapping Arachne's search engine for Yurumi, I had to prove the new one was at least as good as the old. Shadow dual-write, real traffic, overlap@10 — and the number nobody expects: 0.511.

158 commits, 50 bilingual posts, 4 theme engines, 59 AI covers, and a decision that changed everything: killing the bot that wrote posts on its own.

TagCloud, shared PostLayout, Fuse.js-powered FilterBar, and theme fixes — a full day of housekeeping on the blog's foundation.