.nornir/assets/ssh-source-and-warehouse.svg
<svg xmlns="http://www.w3.org/2000/svg" width="860" height="360" 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}
.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 — SSH git-source (IN) + nornir warehouse submit (OUT); GREEN = REUSED shared leaf</text>
<!-- deploy key -->
<rect class="box" x="12" y="46" width="196" height="82"/>
<text x="24" y="68" class="t">--install --system</text>
<text x="24" y="86" class="dim">mint ed25519 deploy key</text>
<text x="24" y="104" class="dim">/home/dwarves/.ssh/id_ed25519</text>
<text x="24" y="120" class="dim">(pure-Rust, mirrors nornir)</text>
<!-- ssh source -->
<rect class="box" x="12" y="160" width="196" height="82"/>
<text x="24" y="182" class="t">repo add git@…</text>
<text x="24" y="200" class="dim">SSH-only (LAW L6)</text>
<text x="24" y="218" class="dim">reject https / git://</text>
<text x="24" y="234" class="dim">crate::repo::add_repo</text>
<!-- nornir-git -->
<rect class="reuse" x="264" y="152" width="220" height="98"/>
<text x="276" y="174" class="acc">nornir-git (edda, REUSED)</text>
<text x="276" y="194" class="dim">ssh::parse_ssh_url</text>
<text x="276" y="212" class="dim">gitio::clone_or_fetch</text>
<text x="276" y="230" class="dim">gix + russh, zero-shell</text>
<!-- checkout -->
<rect class="box" x="540" y="160" width="180" height="82"/>
<text x="552" y="182" class="t">checkout on disk</text>
<text x="552" y="200" class="dim">HEAD sha</text>
<text x="552" y="218" class="dim">→ RealRunner builds</text>
<line class="arr" x1="208" y1="201" x2="264" y2="201"/>
<line class="arr2" x1="484" y1="201" x2="540" y2="201"/>
<line class="arr" x1="110" y1="128" x2="110" y2="160"/>
<!-- build → build-info -->
<rect class="box" x="540" y="46" width="180" height="82"/>
<text x="552" y="68" class="t">build completes</text>
<text x="552" y="86" class="dim">build_variant_with_info</text>
<text x="552" y="104" class="dim">BuildProvenance +</text>
<text x="552" y="120" class="dim">build_info rows</text>
<line class="arr" x1="630" y1="160" x2="630" y2="128"/>
<!-- warehouse sink -->
<rect class="reuse" x="12" y="286" width="330" height="62"/>
<text x="24" y="308" class="acc">NornirWarehouseSink : BuildInfoSink</text>
<text x="24" y="326" class="dim">no NORNIR_SERVER ⇒ no-op · offline ⇒ best-effort</text>
<!-- telemetry rpc -->
<rect class="box" x="392" y="286" width="240" height="62"/>
<text x="404" y="308" class="t">Telemetry.SubmitTestResults</text>
<text x="404" y="326" class="dim">thin gRPC · no nornir dep</text>
<!-- nornir warehouse -->
<rect class="reuse" x="672" y="286" width="176" height="62"/>
<text x="684" y="308" class="acc">nornir warehouse</text>
<text x="684" y="326" class="dim">test_results → 🧪 viz</text>
<line class="arr2" x1="720" y1="128" x2="810" y2="128"/>
<path class="arr2" d="M810,128 L810,286" />
<line class="arr2" x1="342" y1="317" x2="392" y2="317"/>
<line class="arr2" x1="632" y1="317" x2="672" y2="317"/>
</svg>