Landed refactors (JSQUE-016 reorg, URI-013 cleanup) left copy-sites that should call the shared helper; several have already DRIFTED. One sweep, each site listed:
verbs/head/head.js:120 + :203 — the cached-remote-tip peek (eachRemote match + stripLeadRef) is duplicated VERBATIM from get.js, with DIVERGENT error vocabulary (HIGH-ish: two codes for one refusal).verbs/get/get.js:130 — oldTipOf re-implements the wtlog tip read and MISSES detached ?<sha> rows.shared/wire.js:545 — ZERO_SHA tombstone constant defined THREE times; util/sha.js owns the zero-sha concept.views/bro/pager.js:228 — re-implements spell.js helpers it ALREADY imports (joinPath verbatim, dirOf/dirOfPath, an inline dirname).views/status/status.js:423 — re-implements isMount WITHOUT recurse.js's GET-036 symlink guard (and duplicates joinPrefix).views/cat/cat.js:104 — readFileBytes re-implemented in cat.js and spot/search.js despite wtread.js being "the ONE reg-file wt read".shared/wtread.js:10 — io.readAll called with a 3rd size arg the binding SILENTLY IGNORES — wrong contract encoded at 5 sites.shared/serve.js:45 — inline branch→refs/heads mapping instead of relate.resolveRef, DROPPING its guards.core/loop.js:180 — TRANSPORT map duplicates SCHEME_ALLOW's transports (loop.js:27); pager.js:241 already drifted (missing keeper).From the 2026-07-07 be/ review (BE/REVIEW), all CONFIRMED. Method Issues.
shared/util/path.js, util/sha.js, shared/wtread.js, shared/spell.js, core/recurse.js isMount, relate.resolveRef.