--- kind: task slug: fleet-rollup-dashboard title: Fleet dashboard — cross-repo convoy rollup plan_slug: automation-foundation epic_slug: fleet-dashboard status: ready priority: P1 tenant_id: global owner: unassigned cursor_todo_id: null updated_at: "2026-08-03" --- # Task summary Operator home at `/fleet` (or authenticated landing): rollup gate inbox counts, convoys by status, and active `agent_runs` across all workspaces the user belongs to. ## Description Core Epic 9 scope. Answers: **"What needs me across all projects?"** ### UI - Card per connected repo / convoy workspace - Badge: N awaiting approval (sum of `GATE_INBOX_STATUSES`) - Quick links into `/{workspaceSlug}/mission-control?convoy=...` - Active runs count + blocked count ### API - tRPC `fleet.summary` — membership-scoped cross-workspace query (no client-provided workspace_id trust) - Reuse `MISSION_CONTROL_KANBAN_COLUMNS` counts per workspace ## Dependencies - Epic 4, 5 (shipped) ## Subtasks - [ ] `fleet` tRPC router with membership joins - [ ] `/fleet` route (app layout) - [ ] Icon rail / top-header link when user has ≥2 workspaces - [ ] Empty state for single-workspace operators ## Estimation M ## Acceptance criteria - [ ] Operator with two connected repos sees combined "3 awaiting approval" badge - [ ] Clicking badge navigates to correct workspace mission control with inbox focused - [ ] Query performs one round-trip (no N+1 per workspace in UI) ## Links - Epic: `./Epic-fleet-dashboard.md`