jab get can't switch by branch name, detach by bare sha, or do ?..
inRepoSeed runs the path-restore branch BEFORE the branch-switch / detach branches, so any bareword with no / and no leading ? is treated as a FILE path: a branch name (feat), a bare 40-hex sha (detach), and the parent form ?.. all misroute and error (no such path … / cannot resolve ?..), leaving the wt unswitched. Native classifies a bareword by TRACKED-in-baseline-tree status (DIS-017): a tree entry → restore, else → ?branch switch; and resolves .. to the parent branch. Non-destructive (no wt mutation) but jab get cannot switch by name, detach by sha, or navigate parents — and ?.. is used pervasively in the native suite. Part of JGET-001; method Issues.
(bare sha arm), 04-branch-switch-status (?.. )}`.
inRepoSeed (get.js:390) `let path=u.path; … if (path) return
restorePath(...) runs before the detach/branch arms; restorePath throws at get.js:470 (no such path <p> in source). ?.. reaches the switch arm but k.resolveRef("..") is empty → throw get.js:435 (cannot resolve ?..`).
?./feat fork — jab get feat / jab get <40hex> / jab get '?..'
→ rc=1, no switch. Evidence under /tmp/claude-1000/jabprobe (c34/c33/c04).
otherwise → branch switch. A bare 40-hex sha detaches (?<sha>). ?.. resolves to the parent branch.
inRepoSeed: test tracked-in-baseline BEFORE treating a bareword as
a path; route a 40-hex bareword to detach; resolve .././ relative refs in the branch arm. Keep real path-restore for tracked entries.
?.. parent — all succeed.inRepoSeed (get.js:469) if (path) return restorePath(...) runs before every branch/detach arm; restorePath throws no such path at get.js:550; ?.. reaches the D3' arm but k.resolveRef("..") is empty → throw get.js:514-515. Classify a bareword by baseline-tree membership, route 40-hex to detach, resolve .././ in the branch arm.be/test/get (case 34/33/04 shapes; native oracle retired by TEST-003) — ?.. unblocks porting the many cases that use it.?.. blocks porting several native cases that use it.