.nornir/assets/status-board.svg
<svg xmlns="http://www.w3.org/2000/svg" width="900" height="330" font-family="monospace" font-size="13">
<style>
.box{fill:#0f2233;stroke:#6fd3f5;stroke-width:1.5}
.reuse{fill:#12331f;stroke:#7fe0a0;stroke-width:1.5}
.t{fill:#dbeafe}.dim{fill:#9fb6c6}.acc{fill:#7fe0a0}.wire{fill:#f5d76f}
.arr{stroke:#6fd3f5;stroke-width:1.5;fill:none;marker-end:url(#a)}
.arr2{stroke:#7fe0a0;stroke-width:1.5;fill:none;marker-end:url(#b)}
</style>
<defs>
<marker id="a" markerWidth="9" markerHeight="9" refX="7" refY="3" orient="auto"><path d="M0,0 L7,3 L0,6 Z" fill="#6fd3f5"/></marker>
<marker id="b" markerWidth="9" markerHeight="9" refX="7" refY="3" orient="auto"><path d="M0,0 L7,3 L0,6 Z" fill="#7fe0a0"/></marker>
</defs>
<text x="12" y="20" class="acc">dwarves-gui Status board — GREEN = REUSED brokkr::badge (one source, shared with the CLI/RPC)</text>
<!-- fixture -->
<text x="12" y="48" class="acc">run-history fixture</text>
<rect class="box" x="12" y="60" width="180" height="74"/>
<text x="24" y="84" class="t">Vec<PipelineRunRow></text>
<text x="24" y="102" class="dim">build✓ test✓ bench●</text>
<text x="24" y="120" class="dim">release✗ history✓→✗</text>
<path class="arr2" d="M192,97 L240,97"/>
<!-- selector -->
<rect class="reuse" x="240" y="60" width="210" height="74"/>
<text x="252" y="84" class="acc">badge::latest_status()</text>
<text x="252" y="102" class="dim">per pipeline · newest wins</text>
<text x="252" y="120" class="dim">Option<RunStatus></text>
<path class="arr2" d="M450,97 L498,97"/>
<!-- color/word -->
<rect class="reuse" x="498" y="60" width="220" height="74"/>
<text x="510" y="84" class="acc">color_for / status_text</text>
<text x="510" y="102" class="dim">green/amber/red/grey</text>
<text x="510" y="120" class="dim">passing/running/failing…</text>
<path class="arr" d="M718,97 L766,97"/>
<rect class="box" x="766" y="60" width="122" height="74"/>
<text x="778" y="88" class="t">status chip</text>
<text x="778" y="108" class="dim">per row</text>
<text x="778" y="126" class="dim">(egui draws)</text>
<!-- select leg -->
<text x="12" y="180" class="acc">select a row → expand its wire-identical SVG</text>
<rect class="box" x="12" y="192" width="230" height="60"/>
<text x="24" y="216" class="t">update_json {"select":"build"}</text>
<text x="24" y="234" class="dim">row click drives the SAME seam</text>
<path class="arr2" d="M242,222 L298,222"/>
<rect class="reuse" x="298" y="192" width="200" height="60"/>
<text x="310" y="216" class="acc">badge::svg(label,status)</text>
<text x="310" y="234" class="dim">SAME SVG the RPC ships</text>
<path class="arr" d="M498,222 L554,222"/>
<rect class="box" x="554" y="192" width="160" height="60"/>
<text x="566" y="222" class="t"><svg> shown</text>
<text x="12" y="286" class="dim">state_json: { kind, count, green_count, badges[{pipeline,status,color,found}], selected, selected_svg }</text>
<text x="12" y="306" class="dim">Robot: robot_status_board_pane_matrix drives it headless over the seam; testmatrix cell dwarves-gui/status_board_drivable.</text>
<text x="12" y="326" class="dim">Additive: a new 7th tab; a pure CONSUMER of brokkr::badge (no twin). Native-only (dwarves is a native dep).</text>
</svg>