jab get from a WORKTREE source records the worktree path as the store anchor → jab status reports everything unk (baseline unresolvable)
A jab get file:<worktree>?/<proj> (e.g. file:/home/gritzko/journal/?/beagle-ext) writes a full, correct checkout but records the WORKTREE URI as the wtlog store anchor (.be row 0), and a worktree is NOT a store — <wt>/.be is a wtlog FILE that redirects to the real store. So a later jab status reopens the anchor to read the baseline commit's tree, fails (no store dir there), gets an EMPTY base, and classifies every on-disk file as unk — the whole tree reads untracked. Verified in ~/todo/test: .be row 0 = get|file:/home/gritzko/journal/?/beagle-ext, row 1 = get|?#dbb828e6…; jab status → all unk. The store form (file:/home/gritzko/.be/?/beagle-ext) anchors at the real store and status works — that is how the DIS-057/DIS-058 worktrees were made. This is the worktree-source seedLocal redirect that GET-037 explicitly DEFERRED; the get must follow <wt>/.be's row-0 repo redirect and record the REAL store (or refuse cleanly), never the worktree path. Scope: be/ JS get. See GET-037, DIS-055; method Issues.
jab get file:/home/gritzko/journal/?/beagle-ext into a fresh dir → full checkout, but .be row 0 is the worktree URI; jab status → every entry unk.jab get file:/home/gritzko/.be/?/beagle-ext → row 0 = the store path → jab status classifies against the real baseline.shared/classify.js baseline = wtlogReader.baselineTip() → keeperReader.commitTree(sha) → readTreeRecursive. The tip sha (dbb828e6) is in the wtlog, but commitTree can't read it because the store opened from the anchor (/home/gritzko/journal) has no beagle-ext objects (/home/gritzko/journal/.be is a wtlog file, not a store dir). Empty base ⇒ every wt file is "on-disk, not-in-baseline" ⇒ unk..be redirect → /home/gritzko/.be/; only the RECORDED anchor is wrong.seedLocal is the GET-037 stretch"). The C side flags the journal-projector form too (work.mkd: file:///…/journal?/<sub> → WIRECLFL); this is the JS get.jab get from a worktree source records the RESOLVED real-store path in the new wt's .be anchor (follow <wt>/.be row-0 repo redirect), so status/get resolve the baseline afterward.jab status after such a get classifies against the real baseline — NOT all-unk.be/ JS only; ABC/JS house style; keep the friendly string throws.be:/file: worktree-source get → assert the recorded anchor is the real store AND jab status is not all-unk.~/todo/DIS-058 get.js changeset) and DIS-053 (don't reintroduce the --nosub stale-.be-pin regression). Don't regress the store-form get or be-js-sub-cycle/be-js-sub-selflink.verbs/get/get.js seedLocal (the local-store seed): when the source PATH is a worktree (its .be is a FILE), read that .be's row-0 repo redirect to the real store dir and record THAT as the new wt's anchor — not the worktree path. Reuse be.find/store resolution rather than hand-rolling.test/sub/wtsrc/run.sh pins the worktree-source anchor rule (real store recorded, status not all-unk).seedLocal to resolve + record the real store anchor: verbs/get/get.js:136-205 (wt-source .be-FILE row-0 repo redirect) + shared/submount.js resolveLocalStore (:167-192, subs follow the same redirect, SUBS-046).test/sub/wtsrc asserts jab status classifies against the real baseline.resolveLocalStore returns null → friendly throw; sub anchors dropped on failure per GET-037).GET-038-coded commit in the be log — the fix rode in un-coded (likely the DIS-058/SUBS-046/50e90012 changesets); verify the suite and record the landing hashlet here.jab log — left open pending a landing hashlet / suite confirmation.jab status all-unk after jab get file:/home/gritzko/journal/?/beagle-ext. The checkout is correct; only the recorded store anchor was wrong, so status couldn't find the baseline. Redirect fix + test/sub/wtsrc present as of 50e90012; no GET-038-coded commit to cite.