Benchmarks with receipts.
Measurement, postmortems, and releases from the Open Assistants stack — including the experiments that failed. RSS recommended.
Assistant v0.6.18 — a failed command is not a successful receipt
The latest assistant release closes the gap between what a tool did and what governance recorded: explicit outcomes, fail-closed subagents, and real sandbox enforcement for custom commands.
3 min readModelPanel gateway 0.7.0 — the registry belongs to the user
The gateway stops shipping a provider roster. You curate the routes you actually use, with preview, history, tombstones, and a clean empty-state boot.
3 min readAssistant v0.6.7 — from denylist to fail-closed allowlist
The wrong way to trim an agent's tools is to list what it can't do. Deployment-native tool policy: all, selected, or none — with exact and glob patterns, env precedence, and a hard ceiling.
3 min readModelPanel gateway 0.3.0 — explicit fusion, and the M2 road to it
Aliases, combos, presets — removed. One way to fuse: a named panel. The breaking change that says what the gateway is, after the release that made it complete.
3 min readAssistant v0.6.3 — governance that can't be bypassed, streams that can't hang
A middleware that vanished, a stream that hung forever when blocked — and the hotfix release that made governance terminal instead of optional.
3 min readAgent memory benchmarks are mostly incomparable — here is our complete measurement
99.9% vs 96.6% — neither number means what you think. Why recall@5, answer accuracy, and eval sets keep getting conflated, and the full, reproducible measurement behind CoreMem's claims.
4 min readAgentProfile 0.2.1 — identity as code, with limits
A PROFILE.md that carries its own schema version and hard cost caps — now on PyPI, because identity you can't install is identity you won't use.
3 min readHalf our experiments failed. That's why the ones that pass mean something.
The reranker that looked better, the graph edges we believed in, the embedder swap that was a wash — and the one rule that kept the default pipeline honest: the composition lesson.
3 min readHybridDB 0.8.0 — one identity across the store
Chroma vectors are now keyed by the logical primary key, killing a whole bug class at the root: the TEXT-PK journal wedge and the repeated rowid→pk mapping bugs.
3 min readThe embedded stack is five separate databases — HybridDB is one file
sqlite-vec, LanceDB, KùzuDB, DuckDB are each excellent at one thing. HybridDB exists because agent workloads need all five consistent at once. The BEIR and DuckDB numbers behind the claim.
3 min readCoreMem 0.16.0 — filtered recall can no longer starve
150 noise messages could push your answer out of the retrieval window entirely. The fix was teaching the vector store to filter before it searches.
3 min readCoreMem 0.16.1 — timestamp filters compare chronologically
A message stored at 23:00 was excluded by a filter saying 'after 02:00.' The fix is one line. The story is why it took until now to fix.
3 min readHybridDB 0.7.0 — filters that run before the scan, analytics that cost nothing until used
The week we found a 352× speedup hiding in plain sight, taught the vector store to filter before searching, and made rollback 20× faster — by batching.
3 min readCoreMem 0.14.0 — versioned memory, built on the validation era
Every default your memory system ships is a bet. We spent a release cycle measuring ours — then added tamper-evident governance on top of what survived.
3 min readHybridDB 0.6.0 — versioned tables, after the reliability war
Before we could promise 'history you can verify,' we first had to make the journal boring enough to trust. This is that release, and the war that preceded it.
3 min readConnectKit 0.1.6 — credentials that don't expire on you, tools the models can actually read
The v0.1.x series as one story: from a spec that could be read to a runtime where OAuth tokens refresh themselves and tool descriptions are JSON Schema.
3 min read