feat(dashboard): Tab toggle + per-pane selection state #40

Merged
didericis merged 1 commits from chunk-3-pane-selection into main 2026-05-26 01:44:25 -04:00
Owner

Summary

PRD 0019 chunk 3. The TUI now has two focusable panes — proposals and agents — and Tab toggles which one the j/k/arrow keys move through. Each pane keeps its own selection index, so switching panes doesn't lose the position in the other.

Visual model:

  • The focused pane's label shows "(focused)" after the colon.
  • The > cursor + reverse-video row appear only in the focused pane.
  • When the agents pane is focused and there's no status message, the idle status line surfaces the currently-selected agent (e.g., [selected: dev-abc12]) — or [no active agents] / [no agent selected] when there's nothing to point at. Sets up chunk 4 where e / p use that selection.

Footer reshuffled to surface the new shortcut:

[Tab] switch pane  [j/k] move  [Enter] view  [a/m/r] proposal  [e/p] edit  [q] quit

Proposal action keys (a/m/r/Enter) are gated on the proposals pane being focused — pressing them with the agents pane focused is a no-op. e / p still use the global discover-and-prompt flow for one more chunk; chunk 4 swaps them to read the agents-pane selection.

Status

  • 446 unit tests pass (4 new for _selection_status)
## Summary PRD 0019 chunk 3. The TUI now has two focusable panes — proposals and agents — and `Tab` toggles which one the `j/k`/arrow keys move through. Each pane keeps its own selection index, so switching panes doesn't lose the position in the other. Visual model: - The focused pane's label shows `"(focused)"` after the colon. - The `>` cursor + reverse-video row appear only in the focused pane. - When the agents pane is focused and there's no status message, the idle status line surfaces the currently-selected agent (e.g., `[selected: dev-abc12]`) — or `[no active agents]` / `[no agent selected]` when there's nothing to point at. Sets up chunk 4 where `e` / `p` use that selection. Footer reshuffled to surface the new shortcut: ``` [Tab] switch pane [j/k] move [Enter] view [a/m/r] proposal [e/p] edit [q] quit ``` Proposal action keys (`a`/`m`/`r`/`Enter`) are gated on the proposals pane being focused — pressing them with the agents pane focused is a no-op. `e` / `p` still use the global discover-and-prompt flow for one more chunk; chunk 4 swaps them to read the agents-pane selection. ## Status - 446 unit tests pass (4 new for `_selection_status`)
didericis added 1 commit 2026-05-26 01:37:35 -04:00
feat(dashboard): Tab toggle + per-pane selection state
test / unit (pull_request) Successful in 17s
test / integration (pull_request) Successful in 1m4s
0abffc4d90
PRD 0019 chunk 3. The TUI now has two focusable panes — proposals
and agents — and `Tab` toggles which one the `j/k`/arrow keys
move through.

Each pane keeps its own selection index. Switching panes doesn't
lose the position in the other; the cursor (`>` + reverse-video
row) appears only in the focused pane. The label line on each
pane shows "(focused)" when active.

Footer reshuffled: `[Tab] switch pane  [j/k] move  [Enter] view
[a/m/r] proposal  [e/p] edit  [q] quit`. When the agents pane is
focused and there's no status message to display, the idle
status line surfaces the currently-selected agent (or "[no
active agents]" / "[no agent selected]" fallbacks) so the
operator knows what an agent-scoped edit verb will target after
chunk 4 wires them up.

Proposal action keys (a/m/r/Enter) are gated on the proposals
pane being focused — pressing them with the agents pane focused
is a no-op. e/p still use the global discover-and-prompt flow
for one more chunk; chunk 4 swaps them to read the agents-pane
selection.
didericis merged commit 39e69f0bda into main 2026-05-26 01:44:25 -04:00
Sign in to join this conversation.