--- kind: epic slug: mission-control-gates-ui title: Mission control — convoy kanban, gate inbox, co-pilot plan_slug: automation-foundation status: done priority: P1 tenant_id: global cursor_epic_id: null updated_at: "2026-07-03" --- # Epic objective Echodo UI for human gates and convoy visibility: - **Convoy kanban** — columns map to state machine statuses (Planning, Awaiting plan approval, Building, …). - **Gate inbox** — “needs you” queue for `convoy_review`, `pr_review`, pre-`released`. - **Approve / deny / request changes** — calls `transition_convoy_status` with correct `human-gate-*` actor. - **Gate co-pilot** — AI panel using `gate-copilot` role route (`resolveModel`) to summarize plan/diff and suggest action. ## In scope / out of scope **In scope** - Routes under `/{workspaceSlug}/convoys/` or `/mission-control/`. - Conductor-style chat to seed convoys (can call `create_convoy` MCP or web tRPC wrapper). **Out of scope** - Fleet cross-repo view (Epic 9). - Unattended orchestration (Epic 6). ## Dependencies - Epic 4 (lifecycle transitions and queryable convoy state). ## Blocks - Epic 6 (orchestrator pauses until gate UI exists for dogfood). ## Acceptance criteria - [x] Operator sees pending Gate 1 convoy and approves → status `ready`. - [x] Co-pilot uses `claude-planning` alias when configured. ## Tasks - [x] [Task-trpc-convoys-router](./Task-trpc-convoys-router.md) - [x] [Task-mission-control-ui](./Task-mission-control-ui.md)