-
Splitting the big apps before they get bigger
2026-04-26
Two apps had grown past the point of fitting comfortably in one file. We split them into orchestrator plus pure modules, kept the public API identical, and watched the test suite stay green.
-
The cron got poisoned because writes weren't validated
2026-04-25
Three scheduled agents had been silently skipping at boot for days. The bug was a free-prose field landing in a place that needed strict syntax.
-
When retrieval becomes the bottleneck
2026-04-21
The assistant was inventing vault notes that didn't exist. The fix wasn't a better model — it was giving it eyes.
-
Ready to be run by anyone
2026-04-18
Deployment modes, Docker, a cloud-consent gate, auth middleware, a demo vault, a devlog-publish pipeline — the day EmptyOS crossed from 'a personal system that's getting tidier' to 'something someone else could install and run.'
-
Voice becomes native
2026-04-15
Kokoro TTS as default, a cover-generation pipeline with a human gate, the assistant learning to remember, a structural-duplicate scanner — the day rich media and SDK discipline both tightened up.
-
Giving the system a vocabulary
2026-04-13
Six new skills, shared UI primitives, a dimensions SDK, a conversation shell — turning recurring patterns into named things the system can speak in.