ADR 0034 - Project Mission Control is an additional observe view, not the IDE¶
- Status: Accepted
- Date: 2026-08-28
- Decision owner: MAC fleet owner
- Related: ADR 0018 (task view is a graph under progressive disclosure), ADR 0025 (the hub UI is the observability console)
Context¶
ADR 0018 refused a fleet-wide node-and-edge canvas as the primary task view: thousands of blocked tasks with cross-cutting edges are a hairball, and the operator's usual question is local. It explicitly reserved an additional visual canvas for later, with its own justification, that would not replace the table spine.
A Cursor-only canvas of explorer + SVG DAG + inspector proved to be the right shape for operating one project's live DAG (on the order of a hundred tasks, not six thousand). That canvas was a snapshot. Operators need the same layout against the ledger, in the hub UI.
Shipping ide/ at /ui is still forbidden (ADR 0025). ide/ mutates, and it
is not what the fleet serves.
Decision¶
Add Mission Control to the observability console (observe/), read-only.
- Additional view. Live, Stuck, Projects, and the rest stay. Mission Control is a Fleet-group rail entry and a deep-link from a project name.
- One project, capped.
GET /dashboard/observe/projects/{project}/graphreturns schemamac.dashboard.observe.project_graph.v1. Live tasks fill a hard cap first (~200). Omitted rows and edges are named. There is no unbounded read. - The hub owns join policy. Each edge carries the waiter's join policy
and a verdict (
dead/pending/satisfied/settled/unknown). A failed blocker underall_successis not drawn the same as a slow one. - SVG, no new dependency.
observe/still depends only onreactandreact-dom. Layout is a small layered DAG in the console itself. - Honesty and GET-only extend unchanged. A graph the hub could not read is omitted and shown as unavailable, never as an empty DAG. The console still cannot issue POST.
Consequences¶
- Operators can watch a project's real DAG at
/uiwithout opening a snapshot or the unshipped IDE. - Projects too large for the cap still have an honest truncated view rather than a silent subset.
- ADR 0018's table-plus-disclosure neighbourhood remains the planned answer to "why is this one task not moving" at fleet scale; Mission Control does not replace that work.