Skip to content

Commit 325081a

Browse files
style(watcher): reorder sections by operator timeline (campaigns before board) (#34)
Final order: Workers / Active (Present) → Recent (Past) → Campaigns / Board / Queue (Future) → Global Rate / Backend Limits (Capacity) → Services (Infra) → System Resources / Global Gate (bottom-anchored). Campaigns are higher-level workstreams (multi-task), so they read naturally before Board (per-task plane state). Board feeds Queue.
1 parent d33ca6d commit 325081a

2 files changed

Lines changed: 23 additions & 15 deletions

File tree

.console/log.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,3 +147,11 @@ board, queue, backend rows, action submenu, log view header.
147147

148148
## 2026-05-08 — Global Gate three-liner; Execution Budget → Global Rate (single-line); spacers + ≥ spacing
149149

150+
151+
## 2026-05-08 — Reorder pane sections by operator timeline
152+
153+
Swapped board ↔ campaigns in section build order. Final timeline:
154+
Workers / Active (Present) → Recent (Past) → Campaigns / Board / Queue
155+
(Future) → Global Rate / Backend Limits (Capacity) → Services (Infra)
156+
→ System Resources / Global Gate (bottom-anchored).
157+

src/operator_console/watcher_status_pane.py

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -874,21 +874,7 @@ def _build_sections(
874874
recent_lines.append((f" {icon} {ts} {_tc(role):<10} {tag:<22} {title}", attr))
875875
sections.append({"id": "recent", "lines": recent_lines, "sel_local": -1})
876876

877-
# ── board ──
878-
board_items = plane.get("board", [])
879-
if board_items:
880-
board_lines: list[tuple[str, int]] = [
881-
(f" Board ({len(board_items)} Queued)", C["HEAD"] | curses.A_BOLD),
882-
]
883-
for item in board_items:
884-
repo = _tc(item.get("repo", "?"))[:14]
885-
state = item.get("state", "")
886-
icon = "·" if "backlog" in state.lower() else "→"
887-
title = item.get("title", "?")[:max(w - 20, 8)]
888-
board_lines.append((f" {icon} {repo:<14} {title}", C["DIM"]))
889-
sections.append({"id": "board", "lines": board_lines, "sel_local": -1})
890-
891-
# ── campaigns ──
877+
# ── campaigns ── (Future — high-level workstreams)
892878
campaigns = data.get("campaigns", [])
893879
if campaigns:
894880
camp_lines: list[tuple[str, int]] = [
@@ -906,6 +892,20 @@ def _build_sections(
906892
camp_lines.append((f" {icon} {slug}", attr))
907893
sections.append({"id": "campaigns", "lines": camp_lines, "sel_local": -1})
908894

895+
# ── board ── (Future — items in motion)
896+
board_items = plane.get("board", [])
897+
if board_items:
898+
board_lines: list[tuple[str, int]] = [
899+
(f" Board ({len(board_items)} Queued)", C["HEAD"] | curses.A_BOLD),
900+
]
901+
for item in board_items:
902+
repo = _tc(item.get("repo", "?"))[:14]
903+
state = item.get("state", "")
904+
icon = "·" if "backlog" in state.lower() else "→"
905+
title = item.get("title", "?")[:max(w - 20, 8)]
906+
board_lines.append((f" {icon} {repo:<14} {title}", C["DIM"]))
907+
sections.append({"id": "board", "lines": board_lines, "sel_local": -1})
908+
909909
# ── queue ──
910910
queue = data.get("queue", [])
911911
if queue:

0 commit comments

Comments
 (0)