GET-036: the be/-extension self-locator is mis-created — be get leaves an empty be/ dir, and every be/jab run recreates a <wt-basename> -> <abs-wt> self-symlink instead of be -> .

beagle-ext is located by a self-symlink named be at the project root, so jab resolves the extension via its upward be-scan (beagle/js/require.cpp). That locator is mis-created two ways, and is correct ONLY when the worktree directory is itself literally named be (the canonical main tree, where the basename rule coincidentally yields the right name). (1) be get of beagle-ext materialises be as an EMPTY DIRECTORY, not the symlink — repro: be get file:/home/gritzko/.be/?/beagle-ext into a dir NOT named be (e.g. /tmp/x/ZZZ) leaves an empty ZZZ/be/, no self-symlink. (2) Every subsequent be/jab run in the worktree (re)creates a symlink named after the WORKTREE BASENAME with an ABSOLUTE self-target — verified: in ~/todo/DIS-057, removing DIS-057 -> /home/gritzko/todo/DIS-057 by hand and running be status recreates it. The fallout: in any worktree NOT named be, the be locator is broken, so jab falls back to the stale global /tmp/be -> ~/journal/be and runs the WRONG (main-tree) be/ scripts — which masked DIS-057's status changes during review (the bro-pager colour thread). Scope: beagle C core (be/jab runtime + be get checkout). See CLAUDE; method Issues.

Input

Context

Goals

Constraints

WIP

Design decisions

TODOs

Blockers and bummers

Outcome