haiku.rag/haiku_rag_slim/haiku/rag/client
Yiorgis Gozadinos a19f2c96b1
ARM ONLY, NEVER MERGE: sort the fused union by retrieval score
Replaces the rank-interleaved fusion with a straight merge of the union
sorted by each candidate's raw retrieval score, ties still falling to
declaration order, cut at limit. This is the depth-quota candidate: within
one database rank order and raw-score order coincide, so the whole
difference from the tie-break fix is the cross-database interleaving.

This branch exists to be measured and discarded. The rank-dominance tests
in tests/multi_db/test_search.py pin the behaviour this deliberately
inverts, so the root suite FAILS here by design. If the arm wins, the
shipping implementation belongs to the session that owns client/search.py,
with its own tests.

Claude-Session: https://claude.ai/code/session_01WhudUtZm6qqiuv8Y1sbwSc
2026-08-31 19:10:16 +03:00
..
__init__.py Finish the comment pass, and escape document fields everywhere Rich renders 2026-08-28 15:34:47 +03:00
agents.py Name the databases before the model runs 2026-08-27 17:07:41 +03:00
documents.py Name the database a write wrote to 2026-08-28 08:47:36 +03:00
downloads.py Delete comments that restate the line below them 2026-08-20 15:22:33 +03:00
exceptions.py typed UnsupportedSourceError replaces pipeline string-marker matching 2026-05-26 11:44:46 +03:00
processing.py Resolve file:// URIs to paths through url2pathname 2026-08-21 10:22:26 +03:00
rebuild.py Repair an FTS index that covers no rows on write 2026-08-31 18:54:48 +03:00
scope.py Finish the comment pass, and escape document fields everywhere Rich renders 2026-08-28 15:34:47 +03:00
search.py ARM ONLY, NEVER MERGE: sort the fused union by retrieval score 2026-08-31 19:10:16 +03:00
session.py Finish the comment pass, and escape document fields everywhere Rich renders 2026-08-28 15:34:47 +03:00
titles.py Extract title generation into client/titles.py 2026-04-24 14:42:53 +03:00