jab get (be/verbs/get)
jab get is the pure-JS be get (be/verbs/get/get.js + be/shared/*.js, run by jab). This topic tracks where it diverges from native be get, found by differential probing against native as oracle. The fix-and-land method is Issues; each ticket carries a repro-first failing test, a root-cause file:line, and a parity gate ported into be/test/get (the JS-096 model). Sibling topics: GET (native checkout/fetch), JS (JABC bindings + be/ code-review batch), SUBS/DIS (submodule + spec discrepancies).
13 defects from a probe of all ~54 untouched beagle/test/get cases (the JS-096 follow-on). The code under test implements in-worktree forms (inRepoSeed) + recursive sub mounting (submount.js), so these are real-code bugs — which makes DIS-058's "JS get never descends a sub" partly stale. Land CRITICALs first. AUDIT 2026-07-07: JGET-008/009 RETIRED (fixed by URI-013 c43324f4 + SUBS-047 in the d80bdb5c/50e90012 window). NB d80bdb5c (TEST-003) RETIRED native be as the test oracle ("LAGS jab"), so the "parity vs native" gate model here is stale — be/test/get now asserts jab against GET.mkd directly; JGET-004/014's native-refusal/native-mrg premises need a spec ruling.
be get ? (trunk switch) records the WRONG branch → next be post rewrites that branch's history.?<branch> fetches TRUNK for any non-main/master name — pickWant builds refs/<b> not refs/heads/<b> (case 24)..be/ dir crashes jab get (the hermetic-shield shape; masks many cases).?.. (DIS-017).parseRemote misderives the store root for bare file:<store> + won't follow a .be-FILE mount (cases 29/55).../sub not resolved against the parent source (case 50, SUBS-020).--force leaves a tracked orphan on disk (no orphan sweep; case 49, GET-016).cnf/rc=1 vs native mrg/rc=0, ours/theirs swapped (case 66).