lite lindex — backlink suspects in the index laneA separate indexing round answering "who links to this page" with a SUSPECT list, not proof: key dst_hl:40|0:20|7, val src path_hl:40|0:20|vnib:4 in the one .lite.idx lane (INDEXES). Only TIP blobs are scanned, lazily — new blobs only. Stale rows are legal: a removed link leaves a false suspect the caller kills by opening the file, so the lane's never-delete, idempotent contract holds untouched. Links are the Link grammar; the recognizer is LITE-026's hook scanner, reused, never a second regex.
Backlinks are the one wiki query the lane cannot answer today: REV/B2P rows say what a path IS, nothing says who POINTS at it. The Link grammar already fuses in-prose refs (main.js, abc/Makefile:20, LITE-029, DOG-036/LINK.rl) in index/hook.js, and index/resolve.js already descends FSEG for partial paths — indexing is a walk over tip blobs with both in hand.
lite lindex brings the backlink rows up to the current tip; lite lindex <target> prints the suspects for one target.
LINK (7): key dst_hl:40|0:20|7, val
src path_hl:40|0:20|vnib:4; one row per (dst, src) pair, re-puts idempotent.dst_hl is minted from the target TEXT: repo-relative path text for file
links, the bare ticket code (LITE-029) for ticket links — so a ticket's
backlinks survive the thin↔fat layout move.hlOfText("lindex") holding the last-processed commit; a run diffs mark..tip
and scans only the changed paths' new tip blobs, then moves the mark LAST.lite lindex <target> hashes the target text, one prefix scan, and
prints each suspect as a path (via FSEG/tree descent or a kept sidecar —
worker's call, but the answer is TEXT); no rows for a target prints nothing.lite/INDEXES.mkd: the LINK kind, the suspects contract, the mark.F token (tok.parse, the Link grammar) —
lindex reads a blob's F tokens the way index/hook.js does, and never
re-scans raw bytes; partial-path resolution = index/resolve.js FSEG
descent. NO link regex, NO second resolver.main.js case over an index/lindex.js
body; errors in plain words to fd 2.test/lindex/run.sh under dash, fixtures in $HOME/tmp;
repro-first — the no-backlink-answer gap, then the verb. ZERO quickjab edits.vnib stays 0 (reserved); the val's spare 20 bits stay 0.F-token reader out of hook.js for reusepath_hl: no sidecar — the query descends
the tip tree once and prints the paths whose hash the rows named, so
INDEXES.mkd's "NO path text" gap stays literally true.dir/file.c into one F token; under plain jab the suite fails.Staged in work/LITE-033, 8 files, nothing posted. Orchestrator verification, independent of the worker's harness:
test/lindex/run.sh PASS, 31 checks (15 shell + 16 rows.js) under
quickjab; worker ran it red-first (15/15) before the verb existed.lindex main.js and lindex LITE-033 both answer doc.mkd, a bare
rerun says up to date and the lane files stay byte-identical.LITE-033: lite lindex — backlink suspects in the index lane