Context
The interactive TUI renders exactly one section-header style today (src/render.ts, around the section-row block): a magenta ── label line, with pick-mode bar support and a multi-team hint detected via label.includes(" + "). Row in src/types.ts has no depth field. Header-row mouse hit-testing lives in src/render/mouse-hit.ts.
Part of EPIC #125. Depends on #177.
Solution
- Add a
level (or reuse tree depth) to Row so buildRows (src/render/rows.ts) can emit one row per header at any depth.
- Render depth-dependent indentation/style in src/render.ts (increasing indent per level, consistent color family), preserving pick-mode bar and multi-team hint behavior at whichever depth is a combined section.
- Adjust hit-testing in src/render/mouse-hit.ts and src/render/layout-constants.ts for header rows spanning multiple depths.
- Verify fold/unfold, filter mode, and scrolling still behave correctly with nested headers.
Acceptance Criteria
Definition of Done
Context
The interactive TUI renders exactly one section-header style today (src/render.ts, around the section-row block): a magenta
── labelline, with pick-mode bar support and a multi-team hint detected vialabel.includes(" + ").Rowin src/types.ts has no depth field. Header-row mouse hit-testing lives in src/render/mouse-hit.ts.Part of EPIC #125. Depends on #177.
Solution
level(or reuse tree depth) toRowsobuildRows(src/render/rows.ts) can emit one row per header at any depth.Acceptance Criteria
↑/↓.p) and the multi-team hint still work correctly on a combined section at any depth.Definition of Done
src/render.test.ts,src/render/mouse-hit.test.ts, and rows-related tests.bun test,bun run lint,bun run format:check,bun run knip,bun run build.tsall green.