What changed, written for users rather than as a commit log. For where the project is going next, see the roadmap.
2026-07-02 — the performance pass
A pass focused on making writes fast without giving up the text-canonical design, and on tightening the agent contract.
- Bulk import:
import-jsonlloads 50,000 documents in about 2 seconds, committing atomic batches with one fsync each. - Single writes: durable single-document writes are now fsync-bound — the same physical wall every embedded database hits — instead of paying a cache rewrite per operation. Derived cache checkpoints persist on a bounded-lag policy and heal lazily on read.
describeshows the write contract: the live manual now includes each collection’s indexes and validation rules alongside the inferred schema and samples.- Vectors:
vsyncis incremental (fresh embeddings are skipped), andvsearch/contextreuse persisted vectors instead of re-embedding per call. - Query planning:
$innow plans as a union of index buckets instead of falling back to a scan, and two-sided ranges scan the more selective bound. - MCP contract fixes: unknown tool names report “unknown tool”, destructive tools carry real destructive hints, and per-tool required parameters — including
vsearch’sk/filterandcontext_pack’sbudget/filter— are declared in the schema. - Structured errors:
explainanddiagnosefail loudly on a missing collection with a did-you-mean hint;findkeeps empty-result semantics but warns on stderr. - Compaction honesty: compacting the op-log preserves each surviving record’s original timestamp.
- Regression gate: the production benchmark harness now doubles as a coarse regression gate, so a reintroduced hot-path cost fails loudly in CI-adjacent runs.
The full engineering story of this pass — how a text-log database got its writes back — is in the blog post 63x faster inserts.
2026-06 — the hardening pass
A pass focused on durability and recovery guarantees.
- Crash-truncation test matrix: the log is truncated at every plausible byte boundary in tests, including non-UTF-8 tears, and recovery must hold at each one.
- Canonical codec property test: the codec is bit-exact —
dump → load → dumpis byte-identical, enforced by a property test rather than a handful of examples. repairtool: an opt-in recovery command that reports a corrupt log’s intact prefix and truncates to it only with explicit confirmation, backing up the original first.- Cross-platform CI: Linux, Windows, and macOS, plus a pinned minimum supported Rust version.