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

nordisk/knut

.nornir/assets/popviz-loadpath.svg

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1180 520" font-family="'DejaVu Sans', 'Segoe UI', sans-serif">
  <defs>
    <linearGradient id="board" x1="0" y1="0" x2="0" y2="1">
      <stop offset="0" stop-color="#0b1c2e"/>
      <stop offset="1" stop-color="#06111d"/>
    </linearGradient>
    <linearGradient id="chip" x1="0" y1="0" x2="0" y2="1">
      <stop offset="0" stop-color="#14384f"/>
      <stop offset="1" stop-color="#0e2740"/>
    </linearGradient>
    <linearGradient id="test" x1="0" y1="0" x2="0" y2="1">
      <stop offset="0" stop-color="#1d4a3a"/>
      <stop offset="1" stop-color="#123528"/>
    </linearGradient>
    <marker id="a" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="7" markerHeight="7" orient="auto-start-reverse">
      <path d="M0 0 L10 5 L0 10 z" fill="#6fd3f5"/>
    </marker>
  </defs>
  <rect width="1180" height="520" fill="url(#board)"/>
  <text x="30" y="42" fill="#e6f3fb" font-size="22" font-weight="700">knut-popviz — population load path + robot / test-matrix coverage</text>
  <text x="30" y="66" fill="#7fb0cc" font-size="13">the egui app is a thin shell over the same PopvizState.state_json the robot asserts — asserting the JSON is asserting the screen</text>

  <!-- pipeline row -->
  <g font-size="14" fill="#dceaf5">
    <rect x="30"  y="110" width="170" height="72" rx="10" fill="url(#chip)" stroke="#2f6d92"/>
    <text x="115" y="140" text-anchor="middle" font-weight="700">knut-popsim</text>
    <text x="115" y="162" text-anchor="middle" font-size="11" fill="#9fc6dd">wasm-clean model · simulate()</text>

    <rect x="250" y="110" width="170" height="72" rx="10" fill="url(#chip)" stroke="#2f6d92"/>
    <text x="335" y="140" text-anchor="middle" font-weight="700">Arrow batches</text>
    <text x="335" y="162" text-anchor="middle" font-size="11" fill="#9fc6dd">vertex_batches (12 labels)</text>

    <rect x="470" y="110" width="180" height="72" rx="10" fill="url(#chip)" stroke="#2f6d92"/>
    <text x="560" y="140" text-anchor="middle" font-weight="700">run_load</text>
    <text x="560" y="162" text-anchor="middle" font-size="11" fill="#9fc6dd">connect → insert → index</text>

    <rect x="700" y="70"  width="200" height="58" rx="10" fill="url(#chip)" stroke="#2f6d92"/>
    <text x="800" y="98"  text-anchor="middle" font-weight="700">FalkorDB target</text>
    <text x="800" y="117" text-anchor="middle" font-size="11" fill="#9fc6dd">graphar-falkordb · autostart</text>

    <rect x="700" y="150" width="200" height="58" rx="10" fill="url(#chip)" stroke="#2f6d92"/>
    <text x="800" y="178" text-anchor="middle" font-weight="700">Iceberg target</text>
    <text x="800" y="197" text-anchor="middle" font-size="11" fill="#9fc6dd">graphar-flight · skade (arrow-58)</text>
  </g>
  <g stroke="#6fd3f5" stroke-width="2" fill="none" marker-end="url(#a)">
    <path d="M200 146 H250"/>
    <path d="M420 146 H470"/>
    <path d="M650 146 H700 V99 H700"/>
    <path d="M650 146 H700 V179 H700"/>
  </g>

  <!-- introspection + test rail -->
  <rect x="470" y="250" width="180" height="60" rx="10" fill="#10314a" stroke="#3a86b0"/>
  <text x="560" y="278" text-anchor="middle" fill="#e6f3fb" font-size="14" font-weight="700">PopvizState</text>
  <text x="560" y="298" text-anchor="middle" fill="#9fc6dd" font-size="11">state_json() — the UI contract</text>
  <path d="M560 182 V250" stroke="#6fd3f5" stroke-width="2" fill="none" marker-end="url(#a)"/>

  <g font-size="13" fill="#dcf1e6">
    <rect x="60"  y="360" width="300" height="120" rx="10" fill="url(#test)" stroke="#2f8f66"/>
    <text x="75" y="386" font-weight="700" fill="#c8f2dd">nornir-robotui scenarios (in code)</text>
    <text x="75" y="410" font-size="12">• synthetic (default, container-free)</text>
    <text x="75" y="430" font-size="12">• iceberg (container-free, real run_load)</text>
    <text x="75" y="450" font-size="12">• live FalkorDB (#[ignore], needs DB)</text>
    <text x="75" y="470" font-size="12">headless + watch:0 — assert state_json</text>

    <rect x="400" y="360" width="330" height="120" rx="10" fill="url(#test)" stroke="#2f8f66"/>
    <text x="415" y="386" font-weight="700" fill="#c8f2dd">nornir-testmatrix (edda)</text>
    <text x="415" y="410" font-size="12">run_load Ok arm → GREEN row (metric 0.0)</text>
    <text x="415" y="430" font-size="12">run_load Err arm → RED row (metric 1.0)</text>
    <text x="415" y="452" font-size="12" fill="#8fe0b6">NEW: end-to-end emit proof —</text>
    <text x="415" y="470" font-size="12" fill="#8fe0b6">real load asserts the GREEN row lands</text>
  </g>
  <path d="M470 300 Q300 330 210 360" stroke="#6fd3f5" stroke-width="2" fill="none" marker-end="url(#a)"/>
  <path d="M560 310 V360" stroke="#6fd3f5" stroke-width="2" fill="none" marker-end="url(#a)"/>
  <text x="900" y="290" fill="#7fb0cc" font-size="12">green ⟺ nothing untested</text>
</svg>