parseRemote misderives the store root for a bare file:<store> path and won't follow a .be-FILE worktree mount
parseRemote mis-resolves two file: GET forms, so jab get throws cannot resolve trunk where native attaches a worktree: (1) a bare file:<store> path with no .be suffix and no ?proj query → it sets srcRoot = dirname(<store>) (the PARENT dir) and opens the wrong store; (2) a file:<secondary-wt-mount> whose source .be is a FILE redirect → it treats the mount as a raw store path and never reads the .be-FILE redirect row that names the real store + project. Part of JGET-001; method Issues.
beagle/test/get/{29-file-worktree, 55-file-secondary-wt-source}(DIS-049/GET-029 sibling-wt forms).
parseRemote (get.js:96-101): when the path has no .be suffix and
srcRoot===srcBe, it does srcRoot=dirname(srcBe) → parent; seedLocal (get.js:126) then store.open(parent, "") and resolveRef("") finds no tip. The .be-FILE redirect (secondary-wt mount) is never followed.
$W/prim (own .be/ dir); fresh dir; jab get "file:$W/prim"
→ rc=1 cannot resolve trunk in $W/prim. Native: rc=0, .be FILE anchor + checkout. Evidence /tmp/jab-f29.*, /tmp/jab-f55.*.
file:<store> (no query) worktree-attaches at the store's default project tip;
file:<secondary-wt-mount> follows the .be-FILE redirect to the real store/project — both matching native.
.be redirect reader.
Repro-first. (Distinct from JGET-006's pre-made-empty-.be crash.)
file:<dir> whose <dir>/.be is a store DIR →
srcRoot=<dir>; whose .be is a FILE → read the redirect row for the real store + project; only strip /.be when the path literally ends in .be.
.be-FILE redirect half (case 55) LANDED as GET-038 (in the DIS-058 changeset, da7fa5a7): resolveLocalSource (get.js:146-170) follows a worktree-source .be FILE's row-0 redirect to the real store + project before anchoring; twin resolveLocalStore in submount.js:168-195 (SUBS-046, d80bdb5c).file:<store> half (case 29) STILL PRESENT: parseRemote (get.js:106-111) — a store path NOT ending .be gets srcRoot=dirname(srcBe) (the PARENT dir), and resolveLocalSource returns rem.srcRoot untouched when <path>/.be is a DIR (get.js:151-153), so store.open(<parent>,…) opens the wrong root → cannot resolve trunk. Fix: a file:<dir> whose <dir>/.be is a store DIR → srcRoot=<dir>.be/test/get/file (it only covers file://<store>/.be today; native oracle retired by TEST-003); also pin the inverse SNIFFFAIL divergence from Blockers.file:<store>/.be (no ?proj) — native REFUSES(SNIFFFAIL), jab SUCCEEDS writing a malformed empty-project anchor; fix here too.