You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Blocking edges are already parsed (cockpit.sh --parse-blocking) but rendered only as a "Blocked by" table column; the only visual graph is the static mermaid block in the generated docs/ROADMAP.md. Yet the blocking graph is the load-bearing structure of the whole system — census ADVANCE eligibility and the release gate (#176) both hinge on it. It should be the visual centerpiece of the cockpit: one glance shows the critical path to the release and where it's stuck.
Proposal
Client-side SVG DAG of the selected milestone's issues, built from the edges in Cockpit v2 foundation: /api/state JSON snapshot + zero-dep client-rendered SPA shell #206's state JSON. Layered topological layout (roots/unblocked left, release-gate issue rightmost); a small hand-rolled longest-path layering is enough at this scale (tens of nodes) — no external layout library.
Node coloring by state, derived from the SAME state fields the release board uses: done (closed), in flight (live worker), ready (open + unblocked), blocked, needs-human; the release-gate issue gets a distinct treatment.
Interactions: hover highlights the full upstream/downstream chain; click opens the issue card (and worker drawer when in flight); pan/scroll for larger graphs.
Correct DAG for fixture milestones, including: a cycle fixture (flagged, no crash/hang), disconnected nodes (side rail), and a cross-milestone edge (stub node).
Status colors match the board view's classification for the same fixtures (shared source of truth in the state JSON).
Pure client-side, no external assets; layout stays legible at ~40 nodes.
The toposort/layering helper is exercised by tests runnable under plain node (no browser), plus fixture tests for the state classification.
Notes
Sibling of the release-board issue in this milestone; they share the issue-card model and open-drawer behavior.
Blocked by #206
Context
Blocking edges are already parsed (
cockpit.sh --parse-blocking) but rendered only as a "Blocked by" table column; the only visual graph is the static mermaid block in the generateddocs/ROADMAP.md. Yet the blocking graph is the load-bearing structure of the whole system — census ADVANCE eligibility and the release gate (#176) both hinge on it. It should be the visual centerpiece of the cockpit: one glance shows the critical path to the release and where it's stuck.Proposal
Acceptance criteria
Notes