59 lines
1.5 KiB
Markdown
59 lines
1.5 KiB
Markdown
|
|
---
|
||
|
|
kind: task
|
||
|
|
slug: fleet-rollup-dashboard
|
||
|
|
title: Fleet dashboard — cross-repo convoy rollup
|
||
|
|
plan_slug: automation-foundation
|
||
|
|
epic_slug: fleet-dashboard
|
||
|
|
status: ready
|
||
|
|
priority: P2
|
||
|
|
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`
|