.gitmodules (depth-2 recursion → HOMENOPROJ)
In a depth-2 submodule chain (par→ch→gc), jab get mis-derives the grandchild's project title: recurseSubMounts reads the PARENT's top-level .gitmodules keyed by the NESTED path chsub/gcsub, which only declares chsub — so the url comes back empty and the title falls to basename("chsub/gcsub")="gcsub", not the correct gc (declared by the depth-1 sub's own chsub/.gitmodules). jab fetches be:…?/gcsub, keeper returns HOMENOPROJ, the grandchild mount fails and the whole get exits 1. Single-level subs mount fine; only the grandchild level breaks. Part of JGET-001; method Issues.
beagle/test/get/{31-file-subs-parent-source, 45-file-subs-inflight-source}(be: parent, 3-level chain). Case 37 (single sub) is PARITY (rc=0).
recurseSubMounts (get.js:730) calls `submount.mount({wt: g.wt, subpath:
"chsub/gcsub", …}); inside, gitmodulesUrl(g.wt, "chsub/gcsub") reads the parent top-level .gitmodules (only declares chsub) → url="" → wrong title gcsub`.
~/todo/JSGET-cases/c31/wk/02.b2.err (HOMENOPROJ, shard is gc).
.gitmodules (<wt>/<chsub>/.gitmodules, key gcsub), so the right shard (gc) is fetched; the full par→ch→gc chain mounts, matching native.
.gitmodules relative to that level's mount, not the root.Repro-first; sequence after JGET-006.
.gitmodules at the CHILD mount root and key by
the LEAF subpath segment (gcsub), not the root .gitmodules keyed by the full nested path. Carry the resolved title down rather than re-deriving from basename.
be/test/submount.js:96-104 — declaredUrl(wt,"dog/abc") resolves via dog/.gitmodules, title libabc not abc (the exact wrong-title shape).declaredUrl walks to the NEAREST enclosing .gitmodules (be/shared/submount.js:69-79, used by mount at :212); recurseSubMounts gates each level via isDeclaredSub(subWt, leaf) (be/verbs/get/get.js:873).