v0.17.0 — Retrieval, grown up: routing, deep search, linked citations
Highlights
- Ask Everything got a retrieval overhaul. Questions now route to the notebooks most likely to hold the answer (semantic routing over source/note titles, active once you have more than 5 notebooks), while keyword search stays corpus-wide as the exact-identifier escape hatch — so "what uses port 32400?" still hits even when routing guesses wrong. Diversity caps keep one large notebook from crowding everything else out of the answer, and "where did I save X?" now matches source and note titles directly.
- Deep search, on demand. A Telescope toggle in ⌘K ask mode (same UX as chat's deep research) retrieves a 3× candidate pool and has the model keep the passages that actually answer. Smart default: on for gateway models, off for local; degrades safely to normal search if the reranker is unavailable.
- Citations you can click, everywhere. Inline
[1]markers in Ask Everything answers are now clickable chips that jump across notebooks to the exact passage or note, matching notebook chat. - Same question, same citations. Hybrid search had a hidden coin flip: tied fusion scores ordered randomly per launch, so answers could cite different passages run to run. Ties now break deterministically — measured as exact-identifier MRR@10 going from an unstable 0.88 to a stable 1.00.
- Retrieval shows its work. Every retrieval appends a local trace (query, stages, warnings, ranked citations) to
traces/retrieval.jsonl, and agents get an MCPsearch_debugtool that exposes the vector/keyword/fused stages — when an answer looks off, you can see exactly why. - Quality is now measured, not vibes. A dataset-driven eval harness (Recall@5/10, MRR@10, MAP@10, nDCG@10 across exact/paraphrase/section/metadata/multihop queries) runs in
cargo testand floors the metrics, so retrieval regressions fail CI before they reach you. The routing and diversity designs above were chosen by these numbers (per-item routing: 0.93 vs 0.83 accuracy; diversity: 3.0 vs 2.7 notebooks represented, recall unchanged).
Fixes
- Citation order is deterministic across runs (fusion tie-break).
- Home activity feed renders each section as it loads instead of waiting for the slowest.
- Studio refinements and accessibility fixes: focus restore, dialog guards, restored generator colors (#2).
Notes
- First corpus-wide ask builds a small
routesindex (new LanceDB table) and keeps it fresh incrementally; existing databases need no migration. - Retrieval traces are strictly local, capped at 5 MB with rotation.
- MCP:
search_debugis new;ask_everythingaccepts an optionaldeepflag.
Full Changelog: v0.16.0...v0.17.0