diff --git a/.console/log.md b/.console/log.md index 29cf328..0d4f476 100644 --- a/.console/log.md +++ b/.console/log.md @@ -147,3 +147,11 @@ board, queue, backend rows, action submenu, log view header. ## 2026-05-08 — Global Gate three-liner; Execution Budget → Global Rate (single-line); spacers + ≥ spacing + +## 2026-05-08 — Reorder pane sections by operator timeline + +Swapped board ↔ campaigns in section build order. Final timeline: +Workers / Active (Present) → Recent (Past) → Campaigns / Board / Queue +(Future) → Global Rate / Backend Limits (Capacity) → Services (Infra) +→ System Resources / Global Gate (bottom-anchored). + diff --git a/src/operator_console/watcher_status_pane.py b/src/operator_console/watcher_status_pane.py index 647e6e2..663492e 100644 --- a/src/operator_console/watcher_status_pane.py +++ b/src/operator_console/watcher_status_pane.py @@ -874,21 +874,7 @@ def _build_sections( recent_lines.append((f" {icon} {ts} {_tc(role):<10} {tag:<22} {title}", attr)) sections.append({"id": "recent", "lines": recent_lines, "sel_local": -1}) - # ── board ── - board_items = plane.get("board", []) - if board_items: - board_lines: list[tuple[str, int]] = [ - (f" Board ({len(board_items)} Queued)", C["HEAD"] | curses.A_BOLD), - ] - for item in board_items: - repo = _tc(item.get("repo", "?"))[:14] - state = item.get("state", "") - icon = "·" if "backlog" in state.lower() else "→" - title = item.get("title", "?")[:max(w - 20, 8)] - board_lines.append((f" {icon} {repo:<14} {title}", C["DIM"])) - sections.append({"id": "board", "lines": board_lines, "sel_local": -1}) - - # ── campaigns ── + # ── campaigns ── (Future — high-level workstreams) campaigns = data.get("campaigns", []) if campaigns: camp_lines: list[tuple[str, int]] = [ @@ -906,6 +892,20 @@ def _build_sections( camp_lines.append((f" {icon} {slug}", attr)) sections.append({"id": "campaigns", "lines": camp_lines, "sel_local": -1}) + # ── board ── (Future — items in motion) + board_items = plane.get("board", []) + if board_items: + board_lines: list[tuple[str, int]] = [ + (f" Board ({len(board_items)} Queued)", C["HEAD"] | curses.A_BOLD), + ] + for item in board_items: + repo = _tc(item.get("repo", "?"))[:14] + state = item.get("state", "") + icon = "·" if "backlog" in state.lower() else "→" + title = item.get("title", "?")[:max(w - 20, 8)] + board_lines.append((f" {icon} {repo:<14} {title}", C["DIM"])) + sections.append({"id": "board", "lines": board_lines, "sel_local": -1}) + # ── queue ── queue = data.get("queue", []) if queue: