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

nordisk/dwarves

.nornir/facett-brokkrview-plan.md

Plan: facett-brokkrview — the forge panel as a shared facett component

Filed 2026-07-12 (dwarves love pass). ✅ LANDED 2026-07-12 — the facett-brokkrview crate now exists in facett/ and dwarves-gui mounts it (replacing the interim two-table ForgeView). The rest of this doc is the contract that was implemented; deviations from it are noted in the "As built" section below.

Why it is flagged referenced-but-MISSING

The constellation consolidation matrix (workspace_nordisk/.nornir/consolidation-panels-maps-design.md §1.2, dwarves row) marks dwarves as 🟡 PARTIAL for the panel seam: facett-brokkr exists, but facett-brokkrview is referenced but MISSING. The reference is real and lives in this repo:

The seam is already done on the dwarves side (nothing to build here)

The whole point of the Elm split is that dwarves already ships the pure, testable core the panel renders — facett-brokkrview is a thin facett-side follow-up, not new logic:

What facett-brokkrview must be (the contract for the facett agent)

  1. A facett-<app> component crate under facett/ (mirrors facett-brokkr), deps: egui + facett-core + a thin dwarves-client (gRPC) — NO dwarves logic copied, only the shared UI crate + a thin stub (native cross-host backend 2, no wasm — see wasm-ui-panels-design §3).
  2. impl Elm for <the view> delegating to dwarves' Brokkr core, then impl_facet_via_elm! for the egui view. It renders BrokkrModel and emits BrokkrMsg; the disposition chips read the cached/disposition fields.
  3. Data path: fat = in-process dwarves lib; thin = dwarves-server over gRPC (the split in .nornir/ui-embedding-and-standalone.md). dwarves does not yet daemonize, so the thin adapter is gated on a dwarves-server existing.
  4. Test win (required): one nornir-robotui scenario + one testmatrix row that exercises the component in BOTH hosts (nornir's CI/CD tab + the dwarves standalone app). Wire-once, verified-everywhere.

Explicitly NOT done here (and why)

Extraction order (matrix §2)

facett-brokkrview is the closest / first in the extraction order (dwarves → holger facett-holger → korp facett-korp* → de-INTERIM nornir-demo), because the Elm core + headless contract + interim render already exist — only the facett-side bridge crate is missing.

As built (2026-07-12)

The "Explicitly NOT done here" section above is now superseded: the crate WAS created (a facett-owning gated agent did it, so no collision), and dwarves-gui's interim render was swapped for the shared component.