WORK-001: bare work shows the worktree forest

Now
DONE

Input

Context

Bare work (BE-043, unlanded board in work/BE-043) lists a flat button row per work/ worktree; the bare form must instead render the FOREST: the main tree with its mounts, the branch trees, and a foreign tail every worktree hung under what it TRACKS.

Goals

Bare work renders three blocks ASCII tree in plain mode, HUNK spans + hidden U nav in the pager:

  1. the TREE: the top wt as root, mounts recursed in .gitmodules order; each line <date5> #<hashlet8> <subject> off that line's cur tip; a work wt tracking a wt pin hangs under the tracked wt.
  2. BRANCHES: store shard branch (nested by name segments) the wts tracking that branch, named by authority path (e.g. //WORK-123/test).
  3. FOREIGN: refs/anchors outside the project's stores, with the wts tracking them.

Constraints

WIP

Design decisions

16Jul #........ journal — the top wt
├── be                18Jul #226c6228 …        beagle-ext ⇐ ~/.be
│   ├── //BE-043          14Jul #33295788 …
│   ├── //PATCH           18Jul #226c6228 …
│   │   … (34 tracker wts, name-sorted) …
│   └── test          09Jul #........ …       beagle-ext-tests
│       └── //beagle-ext-tests  09Jul #73fc0c91 …
├── jab               16Jul #016be1b3 …
│   ├── //JS-114          11Jul #e300c639 …
│   │   … (7 wts) …
│   └── dog/abc       17Jul #........ …       libabc ⇐ jab/.be
│       └── //ABC-017     17Jul #8d40ba3b …
│           … (7 wts) …
└── //BLAME-001       10Jul #5041ed18 …       tracks the top wt

file:~/src/libdog/.be ?/libdog                remote
├── //DOG-008         10Jul #79612854 …
│   … (9 wts) …
file:~/src/jab.be/.be ?/jab                   remote
└── //DOG-021         14Jul #b58be37a …

TODOs

Blockers and bummers

Outcome