feat(dashboard): highlight proposals pane + bell on new proposal #50

Merged
didericis merged 2 commits from proposal-arrival-highlight into main 2026-05-26 16:07:15 -04:00
Owner

Summary

When a fresh proposal lands in the supervise queue, the dashboard:

  1. Rings the terminal bell via curses.beep() so tmux's monitor-bell (or the terminal's own bell-on-activity) surfaces a notice in the dashboard pane even when the operator is focused on claude in the right pane.
  2. Bolds + green-attrs the proposals: pane label and suffixes it with (new!) so a glance at the dashboard screen catches the alert.

Mechanics

  • saw_first_tick guard so pre-existing queue entries on dashboard startup don't ring the bell — only proposals that arrive after the dashboard is up trigger it.
  • proposals_have_recent derived in _render from the existing _is_recent window (5s). Tracks the per-row green-highlight rule already in place, so label + rows go hot together.

Status

489 unit tests pass (existing tests unchanged).

## Summary When a fresh proposal lands in the supervise queue, the dashboard: 1. **Rings the terminal bell** via `curses.beep()` so tmux's `monitor-bell` (or the terminal's own bell-on-activity) surfaces a notice in the dashboard pane even when the operator is focused on claude in the right pane. 2. **Bolds + green-attrs** the `proposals:` pane label and suffixes it with `(new!)` so a glance at the dashboard screen catches the alert. ## Mechanics - `saw_first_tick` guard so pre-existing queue entries on dashboard startup don't ring the bell — only proposals that arrive after the dashboard is up trigger it. - `proposals_have_recent` derived in `_render` from the existing `_is_recent` window (5s). Tracks the per-row green-highlight rule already in place, so label + rows go hot together. ## Status 489 unit tests pass (existing tests unchanged).
didericis added 1 commit 2026-05-26 15:55:59 -04:00
feat(dashboard): highlight proposals pane + bell on new proposal
test / unit (pull_request) Successful in 17s
test / integration (pull_request) Successful in 1m8s
9ac05c1a63
When a fresh proposal lands in the supervise queue, the
dashboard:

  1. Rings the terminal bell via `curses.beep()` so tmux's
     `monitor-bell` (or the terminal's own bell-on-activity)
     surfaces a notice in the dashboard pane even when the
     operator is focused on claude in the right pane.
  2. Bolds + green-attrs the `proposals:` pane label and
     suffixes it with `(new!)` so a glance at the dashboard
     screen catches the alert at a glance.

The highlight tracks the existing per-row green-highlight
window (`_NEW_PROPOSAL_HIGHLIGHT_SEC`). The bell only fires for
NEWLY arrived proposals after the first tick — pre-existing
queue entries on dashboard startup don't ring.
didericis added 1 commit 2026-05-26 16:04:27 -04:00
feat(dashboard): auto-focus dashboard pane + proposals on new arrival
test / unit (pull_request) Successful in 18s
test / integration (pull_request) Successful in 1m10s
3a7b7d054b
When a fresh proposal arrives, the dashboard now also:

  - Runs `tmux select-pane -t \$TMUX_PANE` (the dashboard's own
    pane id, captured at startup) so tmux focus jumps to the
    dashboard from wherever the operator was (typically claude
    in the right pane).
  - Flips internal focus to PANE_PROPOSALS so j/k navigates the
    queued items immediately.
  - Lands the selected cursor on the first new proposal —
    proposals are sorted by arrival ascending, so the earliest
    new arrival in the batch gets the cursor.

Stacks with the bell + label highlight from the previous
commit. The operator gets:
  1. Audible bell (or tmux activity marker)
  2. Tmux focus on the dashboard pane
  3. Dashboard's internal focus on the proposals list
  4. Cursor on the actual new proposal
  5. Pane label flashing `(new!)` in bold green

— all without leaving the keyboard.
didericis merged commit 51db96f0e1 into main 2026-05-26 16:07:15 -04:00
Sign in to join this conversation.