v0.4.0 — Phase 5: hard negatives + hybrid retrieval
The dense-retrieval quality phase.
- Hard-negative mining: pool top non-relevant passages from BM25 + dense into (anchor, positive, negatives) triples for retriever v2 (the in-batch vs +hard-neg ablation), reusing Polaris 1.2.0's hard-negative InfoNCE support.
- Hybrid RRF: HybridRetriever fuses BM25 + dense by reciprocal rank fusion (no score normalization);
meridian ask --retriever hybrid. - Failure taxonomy: eval.sample_misses + a committed taxonomy scaffold (vocabulary gap / granularity / annotation noise) feeding the Phase 11 attribution study.
All implemented and verified offline; retriever-v2 delta, hybrid row, and audited miss counts pending the trained retriever on the frozen dev split.