view/grep.js:64:EJ caps on SUSPECTS, so a needle present in ZERO files is
refused: against the real /src/linux lane 95k files in 2.5 s of descent; on git.git
reftable_stack_destroy (absent
from linux) yields 733 candidate files -> "733 files may carry them — narrow
the query"; kfree yields 61032 of strbuf yields 616. index/tridex.js:31:zw: 12 bits of prefix_hl12 saturate —
the fills 4096/4096 depth-3 slots in linux,
printk/str/buf/EXPORT_SYM all >= 3874 — so the file-level test is
noise, and DIR_DEPTHS = 3 gives no dir pruning below drivers/net. Found in
the 2026-09-18 index review.
Confirm candidates under a byte/file budget and cap on CONFIRMED hits; widen
the file slot (a u64 lane, or a per-depth trigram block) and/or raise
DIR_DEPTHS so deep files still prune.
kfree needs 9452 opens and
70 MB to reach the 201st carrier, so anything tighter would
refuse by the suspect count again. OPEN_FILES and
OPEN_BYTES in view/grep.js are the knobs.tri:18 | depth:2 | hl:24 (up to
hl:44). The row goes 4 -> 8 bytes, so linux's 163 MB of
.tri.idx becomes ~326 MB; the row COUNT is unchanged.
24 bits are 16.7 M file slots against 95 k files, so the
file test stops being noise. Needs a u64 scalar lane in
abc.index, a QJAB ticket twinning QJAB-013. The only
option that actually cures the saturation.tri:18 | hl14:14, dirs keep today's
entry. The row stays 4 bytes; it costs one more family
and one more row per (file, trigram). 4x the file slots
— 16384 against 95 k files — so linux saturates all the
same. Cheap, and not enough.kfree's 8.9 s, warm)
and trims the candidates whose dir carries no trigram,
but it cannot beat a 12-bit file slot. Free if (a)
lands, where depth:3 | hl:24 still fits.