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

nordisk/dwarves

.nornir/assets/build-pipeline-dag.svg

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 760 400" font-family="ui-sans-serif,system-ui,sans-serif" font-size="13">
  <style>
    .chip{fill:#12232e;stroke:#6fd3f5;stroke-width:1.5;}
    .shared{fill:#173b2a;stroke:#7fe0a0;}
    .adapt{fill:#2e2312;stroke:#f5c76f;}
    .lbl{fill:#dbe9f0;}
    .dim{fill:#8fb4c6;font-size:11px;}
    .arr{stroke:#6fd3f5;stroke-width:1.5;fill:none;marker-end:url(#a);}
    .t{fill:#e8f4fa;font-weight:600;}
    .run{fill:#3a2e12;stroke:#f5d76f;} .done{fill:#173b2a;stroke:#7fe0a0;} .idle{fill:#1a2836;stroke:#5f7f96;}
  </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>
  <rect x="8" y="8" width="744" height="384" rx="10" fill="#0b1620" stroke="#274a5c"/>
  <text x="24" y="32" class="t" font-size="15">dwarves — build-pipeline DAG: one ADAPTER, the REUSED viewer</text>

  <!-- left: brokkr build data -->
  <text x="24" y="60" class="dim">brokkr build pipeline (data)</text>
  <rect class="chip done" x="24"  y="72" width="120" height="40" rx="8"/><text x="84"  y="96" class="lbl" text-anchor="middle">cargo-build</text>
  <rect class="chip run"  x="24"  y="132" width="120" height="40" rx="8"/><text x="84"  y="156" class="lbl" text-anchor="middle">unit ⏳</text>
  <rect class="chip done" x="24"  y="192" width="120" height="40" rx="8"/><text x="84"  y="216" class="lbl" text-anchor="middle">lint</text>
  <rect class="chip idle" x="24"  y="252" width="120" height="40" rx="8"/><text x="84"  y="276" class="lbl" text-anchor="middle">package</text>
  <rect class="chip idle" x="24"  y="312" width="120" height="40" rx="8"/><text x="84"  y="336" class="lbl" text-anchor="middle">ship</text>
  <path class="arr" d="M144,92 C180,92 180,152 144,152"/>
  <path class="arr" d="M144,92 C180,120 180,212 144,212"/>
  <path class="arr" d="M144,152 C180,180 180,272 144,272"/>
  <path class="arr" d="M144,212 C180,240 180,272 144,272"/>
  <path class="arr" d="M144,272 C168,290 168,332 144,332"/>
  <text x="24" y="372" class="dim">Dag (steps · needs) + live ledger BuildRows (RunStatus, duration_ms)</text>

  <!-- middle: the adapter -->
  <rect class="chip adapt" x="248" y="150" width="210" height="96" rx="10"/>
  <text x="353" y="180" class="lbl" text-anchor="middle" font-weight="600">ForgePipelineAdapter</text>
  <text x="353" y="200" class="dim" text-anchor="middle">crate dwarves · feature facett-adapter</text>
  <text x="353" y="218" class="dim" text-anchor="middle">steps→nodes · needs→edges</text>
  <text x="353" y="234" class="dim" text-anchor="middle">status→state · duration→labels</text>
  <line class="arr" x1="144" y1="200" x2="248" y2="198"/>

  <!-- right: normalized model + reused viewer -->
  <rect class="chip" x="512" y="96" width="216" height="56" rx="8"/>
  <text x="620" y="120" class="lbl" text-anchor="middle">facett_pipeline::PipelineModel</text>
  <text x="620" y="138" class="dim" text-anchor="middle">engine-agnostic (the seam)</text>
  <rect class="chip shared" x="512" y="200" width="216" height="64" rx="8"/>
  <text x="620" y="226" class="lbl" text-anchor="middle">PipelineView::from_adapter</text>
  <text x="620" y="244" class="dim" text-anchor="middle">the REUSED DAG viewer (not new)</text>
  <line class="arr" x1="458" y1="190" x2="512" y2="140"/>
  <line class="arr" x1="620" y1="152" x2="620" y2="200"/>

  <rect class="chip" x="512" y="308" width="216" height="48" rx="8"/>
  <text x="620" y="330" class="lbl" text-anchor="middle">dwarves-gui · "Pipeline" tab</text>
  <text x="620" y="346" class="dim" text-anchor="middle">alongside Forge | Funnel | Claude | Jobs</text>
  <line class="arr" x1="620" y1="264" x2="620" y2="308"/>
</svg>