index/perma.js:324:Ab resolves only through resolveAt(ctx, ix, ctx.head.sha,
...). Confirmed on fixture del: bee see gone.c:5:Qn works before git rm
and after it answers "no registered repo holds gone.c", although B2P and
REV-BLOB still name the anchored blob and the ODB still holds the bytes.
deleterOf already knows who removed it. Found in the 2026-09-18 review.
On a HEAD-tree miss ask the index (B2P -> path/rev -> REV-CMMT) before the
foreign fan-out, and serve the anchored bytes with the deleterOf note.
A deletion mints no rev of its own (index.js's ZERO40 skip),
so deleterOf — which walks the path's OWN later revs —
cannot name the commit that removed the FILE; it still names
the one that took the LINE. gonerOf answers the file case:
HEAD's ancestry newest first, bounded by the same
DELETER_SCAN, the oldest commit still missing the path.
The seat carries the anchored BYTES, since the worktree has
none: door.js seatOf passes them through and view/see.js
quotes them in place of its worktree read.
The index leg fires only when HEAD's tree spells the path
NOWHERE, so the live-file leg and the foreign fan-out keep
their goldens untouched.