.gitmodules url BASENAME changed since the first mount fetches the wrong shard → object-not-foundWhen a submodule's declared .gitmodules url BASENAME differs between the
original mount and a later re-get (GET or whole-tree PATCH), the re-get
fetches into a shard named by the NEW url basename while the existing
mount + checkout live under the OLD basename. subs_pin_present /
KEEPHas then reports the pin present in the wrong shard, SubMount
short-circuits, and the spawned sniff get <pin> opens the mount's shard
and fails object not found / SNIFFFAIL / BEDOGEXIT. Found while
building the PATCH-005 hermetic fixture; not the real dogs/journal flow
(url basenames are stable there), so low priority — but a real latent gap.
ch is declared with url
basename ch; later rewrite the committed .gitmodules url to a
different basename (dead-libch) and be get / be patch an
advanced pin. The fetch targets the dead-libch shard but the mount
is ch → the child checkout reads ch, misses the pin.subs_sibling_shard_has_pin, sniff/SUBS.c) keys
on the PATH basename, but the SHARD dir + anchor are named by the URL
basename — they diverge when the url basename changes.todo/README.mkd) — a board gap (LOW, latent).