Your browser sucks, JavaScript disabled! Gunnar's console needs JavaScript and WebAssembly. Git over SSH on port 2222 does not.

nordisk/dwarves

.nornir/assets/dwarves-service-lifecycle.svg

<svg xmlns="http://www.w3.org/2000/svg" width="760" height="300" font-family="monospace" font-size="13">
  <style>
    .box{fill:#0f2233;stroke:#6fd3f5;stroke-width:1.5;rx:6}
    .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)}
  </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></defs>

  <text x="12" y="20" class="acc">dwarves L1 — service/systemd via skidbladnir (REUSE, never hand-roll)</text>

  <rect class="box" x="12" y="44" width="180" height="58" rx="6"/>
  <text x="24" y="66" class="t">dwarves::service</text>
  <text x="24" y="84" class="dim">service_spec(exec,port,scope)</text>
  <text x="24" y="98" class="dim">→ ServiceSpec</text>

  <rect class="box" x="250" y="44" width="150" height="58" rx="6"/>
  <text x="262" y="66" class="t">Lifecycle::new</text>
  <text x="262" y="84" class="dim">unit_text (pure)</text>
  <text x="262" y="98" class="dim">install/start/stop</text>

  <rect class="reuse" x="458" y="30" width="290" height="86" rx="6"/>
  <text x="470" y="50" class="acc">skidbladnir (the ONE service crate)</text>
  <text x="470" y="70" class="dim">systemd::systemd_unit_scoped (render)</text>
  <text x="470" y="86" class="dim">Systemd D-Bus controller (no systemctl)</text>
  <text x="470" y="102" class="dim">Scope: system | user</text>

  <line class="arr" x1="192" y1="73" x2="248" y2="73"/>
  <line class="arr" x1="400" y1="73" x2="456" y2="73"/>

  <rect class="box" x="12" y="150" width="360" height="70" rx="6"/>
  <text x="24" y="172" class="t">dwarves-server --unit | --install | --start | --stop</text>
  <text x="24" y="190" class="dim">renders/drives the Lifecycle, then exits</text>
  <text x="24" y="206" class="dim">(before the gRPC forge server boots)</text>
  <line class="arr" x1="192" y1="150" x2="300" y2="103"/>

  <rect class="box" x="410" y="150" width="338" height="118" rx="6"/>
  <text x="422" y="172" class="acc">dwarves-gui — Pipeline | Funnel panes</text>
  <text x="422" y="192" class="dim">robot scenario drives over the REMOTE seam:</text>
  <text x="422" y="208" class="dim">state_json (out) / update_json (in) — no pixels</text>
  <text x="422" y="228" class="dim">→ nornir-testmatrix cell (edda):</text>
  <text x="422" y="244" class="t">dwarves-gui/pipeline_funnel_panes_drivable</text>
  <text x="422" y="262" class="dim">watch-on-DISPLAY:0 = follow-up</text>

  <text x="12" y="288" class="dim">Law #1: code in ONE place — dwarves consumes skidbladnir + edda, invents nothing.</text>
</svg>