v0.2.1
Keyword matches are now weighted by term rarity (BM25's IDF component): a query token rare across the repo outranks a common one, so multi-term queries surface the files matching the specific terms first. Normalized to the query's mean IDF, so a typical match scores exactly as before — ranking magnitude and the confidence/Moat calibration are unchanged (verified: gate + rank suites green). Full BM25's TF-saturation / length-norm don't apply to the deduped top-N keyword representation.