Blog

Engineering notes, platform updates, and thinking out loud.

Open the closed: why vendor lock-in is a design choice, not a given

Every platform dependency is a bet. We explain why we think the only safe bet is a typed contract — and how that shapes every architectural decision we make.

Read more →

How we redesigned the plugin system to eliminate circular dependencies

Plugin runtimes that depend on the core they extend are a reliability time bomb. Here's how we broke the cycle using dynamic imports and a factory pattern.

Read more →

Adaptive search weights in Mind RAG: moving from static to intent-aware retrieval

BM25 + vector hybrid search works well on average. But "on average" hides a lot of variance. We added per-query adaptive weights to fix the tail cases.

Read more →

Two-tier memory for long-running agents: working memory vs persistent facts

As agent sessions get longer, context windows fill up. We built a two-tier memory system that keeps the important stuff and lets the noise fade.

Read more →

Going from 10-minute builds to 15-second incremental rebuilds in a 125-package monorepo

Full rebuilds were killing developer flow. Here's the layer-based incremental build system we built into DevKit — and the unexpected edge cases we hit.

Read more →