Skip to content

Dashboard — Automation surfaces

Dashboard surfaces that project the operating-tier resolver and who-can-act decision into the Today tab. The earlier Review Queue, Daily Log, and Engage tabs were retired when the Threads tab became the canonical resolution surface; what remains is the Today tab and the per-task Auto column on the Tasks tab.

Details

Dashboard automation surfaces (post-v5 cleanup)

Slice 4 originally shipped three places where the operating-tier resolver output reached the user: a Review Queue tab (tier-3 outputs), a Daily Log tab (tier-4 events), and an Engage tab (Slice 5a who-can-act + current-context filter). All three were retired in 2026-05-03's v5 Threads cleanup — v5 Threads is now the canonical resolution surface for everything that needs the user's attention. (The legacy Review tab itself was retired in the clarify -> Threads migration; triage now flows through the unified source pipeline and surfaces on the Threads tab via group sub-threads.)

What's left

Today tab

GET /api/automation/today?contexts=<csv> -> composes the engage helper output + the clamp-to-now plan from work_buddy.task_me.build_now_plan + top-2 recommendations from task_me.top_recommendations + active-contracts banner. Re-runnable on every refresh.

Tasks tab — Auto column

The existing Tasks tab still surfaces the resolver: per-row tier badge, typed pipeline-blocker badge (when capped), and last-actor pill, backed by enrichment in get_tasks_summary.

Internal helpers (no HTTP route)

_build_engage_view_payload

Lives in work_buddy.dashboard.service and is called only by work_buddy.task_me.load_context_for_task_me, which composes it into Today's payload. Returns every open task with the operating-tier decision, who-can-act block, and user-now satisfaction. Kept as a private collaborator because Today still needs it; the Engage tab that originally consumed it is gone.

Visual language

The CSS classes that drove the Slice-4 cards (aut-tier-badge, aut-actor-badge, wv-blocker-badge) are gone. The Tasks tab's Auto column uses its own classes. .section-subtitle survives in scripts/tabs/automation.py because Today still consumes it.

Frontend

  • scripts/tabs/today.py owns loadToday and the today CSS.
  • scripts/tabs/automation.py is now a tiny shared-utility module (_autEsc + .section-subtitle); the four loaders that previously lived there (loadReviewQueue, loadDailyLog, loadEngage, loadBlockedByContext) were deleted along with their tab panels.
  • scripts/core/page.py's staticLoaders no longer registers the three retired tabs.
  • The v4 collapse-toggle (legacy-tabs-toggle + the hide-legacy-tabs body class) was removed too — every surviving tab is now visible by default.

What used to be here

  • GET /api/automation/review-queue — removed.
  • GET /api/automation/daily-log — removed.
  • GET /api/automation/engage — removed (the helper survives for Today).
  • GET /api/automation/blocked-by-context — removed.
  • scripts/tabs/automation.py's loadReviewQueue / loadDailyLog / loadEngage / loadBlockedByContext — removed.
  • tests/unit/test_dashboard_automation_surfaces.py and test_dashboard_contexts_surfaces.py — removed; the engage helper is still exercised via test_dashboard_today.py.