- chunk gather + projection now speak the W2.1 pair-list contract
consistently on BOTH engines (fusion['ranks'] is [[rowid, rrf], ...];
dict-form still accepted for backward callers)
- oracle-path tests: all three modes, abstention edges, malformed
timestamps, hybrid accumulation, chunk SQL gather through a real
fixture (vec-table absent by design; embed stubbed — vector execution
stays Python per the W2.0 ruling)
- battery 32->32 tests extended; suite 2291/0; canary 75/75 x3;
diff-cover 84% (floor 70)