ofs-delta peer abort22bec7d6 restored REF_DELTA on the READ side only. PACKResolve/PIDXScanRef take a pack_ref_find so a rotated log's cross-log bases resolve, and REPACK.c:314 EMITS REF_DELTA whenever a crossing delta lands in a new log — but REPACK.c:308 still carries test(obj.type != PACK_OBJ_REF_DELTA, REPACKBASE), so a source pack that CONTAINS a REF_DELTA record aborts with "pack: a delta cites a base that never arrived". That is not an exotic input: a THIN pack names its bases by sha by construction (KEEP-006 §Fetch-side rules says so outright), and so does any peer that did not negotiate ofs-delta. Every incremental fetch is a thin pack, so this bites the moment JAB-020 routes jab get through git.pack. Found by the TEST-004 treadmill; method Issues.
jab/dog/git/REPACK.c:308 — the else arm of the OFS branch is test(obj.type != PACK_OBJ_REF_DELTA, REPACKBASE): a REF_DELTA record on input ends the run.jab/dog/git/REPACK.c:314 — the same loop emits PACK_OBJ_REF_DELTA when baserow->slot != rp->slot, so the writer produces exactly the record shape the reader refuses.REPACKRun(fd, buf, shard, conf, ibuf, st) (REPACK.h:72) has no finder parameter; wiring one in is a signature change nothing has made yet.test/mill/pack.js: git.git repacked 417,182/417,182 objects clean at a 128 MB cap — which under line 308 PROVES the input pack was OFS-only, not that REF input works.git.pack ingests a pack containing REF_DELTA records, resolving each base out of the shard rather than aborting.
REPACKRun takes a base finder (sha → pack slice + offset), the same shape PACKResolve already accepts from 22bec7d6.git.pack binding grows no new argument: the shard path it already takes is what the finder searches.pack.js --thin flips from pinning today's refusal to asserting the objects land.pack_ref_find/PIDXScanRef, do not write a second resolver.ZINFMORE must keep propagating (JAB-020) — do not let the new branch collapse truncation into a base error.22bec7d6's read-side work stands and needs no revisiting.REPACKRun's signature and thread it to the delta branch.REPACK.c:308 refusal with a REF resolve: find the base by sha, apply the delta, emit as the base's type.pack.js --thin: build a thin pack with git pack-objects --thin and assert the objects land.jab get, not a unit probe.Not started — filed 2026-07-27 from a TEST-004 treadmill finding, after gritzko's read of 22bec7d6.