v0.10.0
v0.10.0 — C# · automatic model onboarding · Windows
Three headline additions — plus a measurement correction that's the most important thing in this release.
Highlights
- 🪟 Windows binaries.
kenandken-mcpnow ship for Windows (amd64 + arm64) alongside macOS and Linux — pure-Go single static binaries,.ziparchives. - ⬇️ ken-mcp auto-fetches the embedding model on first run. A fresh
ken-mcpwith no model now downloads it in the background (~60 MB, pure-Go, no Python) and upgrades to hybrid automatically — new installs land on the high-recall path with zero setup.KEN_MCP_AUTO_FETCH=0to opt out. (ADR-037) - #️⃣ C# is the 13th language. gotreesitter v0.20.2 bounded the namespace-recovery recursion that used to OOM ken's indexer on real C#, so
.csfiles now get full structural extraction + Arm B enrichment.
The measurement correction (read this one)
Auditing recall for 1.0, we found the widely-quoted "82–91% recall@10" was the BM25-only fallback — the mode ken runs in when no embedding model is installed. The shipped default (hybrid) mode measures ~97% recall@10 (0.967 NL / 0.995 symbol on semble's 1,251-query benchmark), at ~46× fewer agent tokens than grep+Read (4,120 vs 189,773 median on NL queries).
That reframes the product story: ken isn't "82% and hope" — it's near-grep recall at 1–2 orders of magnitude lower token cost, if you're on hybrid. Which is exactly why auto-fetch is in this release — the only users on the 82% path were the ones who hadn't installed the model, and now that's automatic. Every number is backed by a reproducible decomposition harness (internal/search/recall_decomp_test.go), and the README / benchmark docs were corrected throughout.
Also in this release
- Phase 0 structural call-graph substrate — per-call-site records + span fields on every symbol; groundwork for resolved function-level
callers/impact(no tool-surface change yet). - Crash fix — a guard against a gotreesitter stack overflow on oversized (64 KiB+) table-driven files that could take down
ken index. - Docs overhaul — README trimmed 711 → 184 lines with the recall headline up front; working docs moved to
docs/internal/; a newdocs/db-indexing.md.
Install
go install github.com/townsendmerino/ken/cmd/ken@v0.10.0
go install github.com/townsendmerino/ken/cmd/ken-mcp@v0.10.0Or grab a pre-built binary below — .tar.gz for macOS/Linux, .zip for Windows (amd64/arm64). Point your agent at ken-mcp; it fetches the embedding model on first run.
Full notes: CHANGELOG.md · compare v0.9.1...v0.10.0