Commit 4e49d46
release: v1.108.185 — fusion gets a verdict, and fusion can prove absence
The last two exits without one. Unlike the semantic exit, neither asserted
anything false — no verdict and no absence prose either — so a zero-result
fusion search came back as a bare empty response: nothing wrong, and nothing
honest. Every retrieval exit in the suite now carries a verdict, pinned
structurally rather than by inspection.
The review reached the OPPOSITE conclusion to 1.108.184's, which is why modes
get reviewed rather than having a rule ported onto them. build_lexical_channel
and build_identity_channel each score every eligible candidate with no cap, and
fuse keeps every symbol appearing in ANY channel, so an empty fused set means
every candidate scored zero on both BM25 and identity — the same corpus fact the
lexical path's absence rests on. The similarity channel can only ADD symbols, so
its absence weakens ranking and cannot manufacture a false absence. That
asymmetry is what the semantic exit lacked.
Two defects found on the way, either of which made `absent` unreachable:
- build_structural_channel treated "restrict to nothing" as "no restriction".
The guard was a falsy check, and both callers pass lexical | identity — so a
query matching nothing produced an EMPTY set, skipped the filter, and let
every symbol with nonzero PageRank into the channel. A no-match fusion query
returned the whole repository ranked by centrality, and with no verdict
nobody could see it was reporting centrality as relevance.
- EmbeddingStore._connect runs a WAL pragma and a CREATE-TABLE script on every
connection, so the fusion embeddings probe wrote to the database it was
reading, bumped _db_mtime_ns, and made the first fusion search of any process
report rebuilding + moved_during_scan. mode=ro alone does NOT fix it: a
read-only connection to a WAL database still creates the -wal and -shm
sidecars, and _db_mtime_ns maxes over the .db AND the -wal. immutable=1 is the
flag that guarantees no sidecar.
Also: both no-candidate early returns now carry incomplete: empty_scope; new
verdict.retrieval_verdict_for_index binds the five index signals every exit was
assembling by hand; the receipt gate fired on its own author a second time, so
completeness_by_mode["fusion"] is declared for both producers.
Suite 6093 passed + the known 12 local-ONNX env failures. Replay gate green.
No tool-count change, no INDEX_VERSION change, no schema change.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>1 parent a11cad3 commit 4e49d46
12 files changed
Lines changed: 1055 additions & 83 deletions
File tree
- src/jcodemunch_mcp
- evidence
- retrieval
- storage
- tools
- tests
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
5 | 104 | | |
6 | 105 | | |
7 | 106 | | |
| |||
0 commit comments