v0.2.0 — hybrid search
Hybrid search release. Ranking now combines semantic similarity with keyword matching and recency, so proper nouns and dated entries surface reliably.
What's new
- Hybrid ranking —
0.7 · cosine + 0.3 · IDF keyword + 0.05 · recency(90-day half-life), multiplied by a per-source weight. - Sub-chunking — long sections are split into 200-word windows with 40-word overlap, so a match inside a big file no longer drowns.
- Inline-date recency — the latest
YYYY-MM-DDfound in a chunk drives the recency signal, falling back to file mtime. - Per-source weights — sources accept
{ "path": ..., "weight": ... }inmunin.config.json. - Pinned model revision — the embedding model (Xenova/all-MiniLM-L6-v2) is pinned to a specific revision; loads offline-first with a one-time warned online fetch.
- Tuning — default
minScorelowered from 0.35 to 0.3; weights tuned against a golden recall set (tools/golden.mjs).
Verification
- 30/30 tests passing.
- Golden question set: 9/10 correct (up from 6/10 on the v0.1.0 semantic-only baseline).