The dashboard topology is introspected from the compiled graph, but
_maximal_compiled() built it without confluence=True, so conf_draft/conf_gate/
conf_write never appeared on the pipeline map. Wire them in:
- topology.py: _maximal_compiled(confluence=True); NODE_META entries for the
three conf nodes (own 'docs'/Documentation tree, conf_gate kind=gate,
gated=True so the UI dims the opt-in lane); add the 'docs' tree; map the
CONF_* phases in PHASE_TO_NODE so a live task buckets onto its node.
- layout.ts: the conf_gate->conf_draft request-changes loop reads '↺ revised'.
Frontend renders the new lane automatically (generic dagre layout + dynamic
treeByNode). +2 topology tests; edge-classification test updated (intake is now
a conditional branch point: clarify vs conf_draft). Full suite 1616 passed;
frontend typecheck + 44 tests green.