Gunnar

nordisk/dwarves

.nornir/build-thing-inventory-2026-09-10.md

<!-- nornir:class: reference -->
# build thing — the constellation inventory · 2026-09-10

> **Class:** `reference` · **THIS FILE IS A RENDER, NOT A SOURCE.**
> Every line below is the verbatim stdout of
>
> ```
> dwarves buildthing inventory          # = dwarves buildthing --list --all
> ```
>
> taken 2026-09-10 with `DWARVES_CONSTELLATION=/home/rickard/git`. Nothing here is
> hand-maintained: the rows come out of `nornir_build_thing::inventory`, whose
> facts come out of the declarations themselves (`declarations()` for the roster,
> `Declared::kind` for the typ, and `flags_of(SettingsTree::of_set(..))` for the
> settings column — the same walk `--opt`/`--param`/`--build` are parsed against).
> Regenerate rather than edit. `crates/dwarves/tests/buildthing_inventory.rs` is
> the gate that keeps the two agreeing.
>
> Vocabulary: **variant → features → settings / sub-settings → typ**. Never "cell".

## How to read a row

| column | what it is |
|---|---|
| col-1 | `<repo>/<variant>` — the coordinate `--variant` and `--build` take |
| col-2 | the ROAD the declaration came down: `kod` (a `<repo>-build-thing` module answered — the code IS the source) · `toml` (the committed table was read as the source — a finding) · `DRIFT` (a module answered AND disagreed with the table) · `VÄGRAD` (unreadable) |
| col-3 | `typ` (the OUTPUT TYPE) · `feat` (features ON) · `set` (the settings axes as their **value space**, not their defaults) · `edge` (BUILT edges) · `perm` (how many buildable points the one-of axes describe) |
| `↳ <repo>` | one line per repo: WHY it is not on the code road |

`set dhcp=on|off` means both states are buildable, not that DHCP is on. `perm 4`
means four buildable points. A free-text setting reads `<value>` and multiplies
the permutation by one, because its space is not enumerable.

## The verdict, 2026-09-10

**2 of 19 declaring checkouts answer from CODE.** Only `gunnar` and `facett` take
the `kod` road; the other seventeen are read off a committed `build-variants.toml`,
which the code-is-source ruling says must not be a read file at all. The refusals
are not opinions — the forge computed each one and, until this render existed,
dropped it. There are exactly **two** reasons, and they are different problems:

| reason | repos | the fix |
|---|---|---|
| **no `<repo>-build-thing` crate** | dwarves · holger · nornir · modgunn · edda · knut · ordning | the tillskott: write the `impl BuildThing`. (dwarves is the forge and edda owns the trait, so those two are arguably exempt; holger's impl exists but lives in edda as `nornir-buildspec-holger`, a name `recipe_crate()` cannot find, AND it `include_str!`s the toml — the inversion, not the law.) |
| **`[build.toolchain]` is not pinned** — `no image_sha256`, "a named tag is a convenience, NOT a pin" | skade · korp · Skidbladnir · draupnir · korp-collectors · znippy · znippy-zoomies | these repos **have** a real cdylib recipe; they are one `image_sha256 = "…"` away from the code road. This is the cheapest ten-repo win in the whole audit. |
| **`[build.toolchain] siblings` names a checkout that is not there** | tunnr | clone the named sibling beside it (or drop it from `siblings`) |

Two rows in the table — `dwarves-head` and `gunnar-head` — are full clones another
lane created on this disk at 09:43 today, not constellation members. They are left
in because the render is verbatim: the scan found them, and a table that quietly
dropped what the scan found would be the wrong kind of tidy. Note the worktree
dedup in `ConstellationBuilds::discover` did not catch them precisely because they
are clones and not linked worktrees.

## The table

```
BUILD THING                        väg     typ · features · settings (värderymd) · edges
────────────                       ───     ────────────────────────────────────────────
dwarves/dwarves-server             toml    typ service · feat embed-all,read-fat,nornir/embed-ort…+3
dwarves/dwarves                    toml    typ exe · feat cli,vault,release…+4
dwarves/dwarves-cli                toml    typ exe · feat cli,vault,funnel-action
dwarves/dwarves-ui                 toml    typ exe · feat vm-boot
dwarves/dwarves-ui-gpu             toml    typ exe · feat gpu,vm-boot
dwarves/dwarves-solo               toml    typ exe · feat solo
  ↳ dwarves                        väg     `dwarves` har ingen `dwarves-build-thing`-låda (sökt under crates/ och rote…
holger/embedded                    toml    typ exe · feat embedded
holger/mini                        toml    typ service · feat mini,appliance
holger/full                        toml    typ service · feat full
holger/mvp-server                  toml    typ service · feat mvp-server,appliance
holger/mvp-server-musl             toml    typ exe · feat mvp-server,appliance
holger/server-local                toml    typ service
holger/ui                          toml    typ exe · feat gui
holger/ui-embedded                 toml    typ exe · feat gui-embedded
holger/ui-mini                     toml    typ exe · feat gui-mini
holger/ui-mikro                    toml    typ exe · feat gui-mikro
holger/agent                       toml    typ exe
holger/agent-online                toml    typ exe · feat online
holger/mvp-bundle                  toml    typ exe
holger/mvp-verify                  toml    typ exe
holger/holger-mvp-appliance        toml    typ container
holger/holger-installer            toml    typ installer · set site=<value>,hub_conf=<value>,holger_ron=<value>…+3 · p…
  ↳ holger                         väg     `holger` har ingen `holger-build-thing`-låda (sökt under crates/ och roten)…
nornir/nornir-server               toml    typ service · feat server,viz,mcp…+11
nornir/nornir                      toml    typ exe · feat server,viz,mcp…+11
nornir/nornir-cli                  toml    typ exe · feat server,viz,mcp…+11
nornir/nornir-ui                   toml    typ exe · feat viz
nornir/nornir-solo                 toml    typ exe · feat solo,server,viz…+4
  ↳ nornir                         väg     `nornir` har ingen `nornir-build-thing`-låda (sökt under crates/ och roten)…
skade/skade                        toml    typ lib · feat s3
skade/skade-remote                 toml    typ service
skade/skade-flight                 toml    typ service
  ↳ skade                          väg     [build.toolchain] i `skade`: [build.toolchain] `nordisk-cargo-toolchain`: n…
korp/korp-server                   toml    typ service · feat server,iceberg,minio…+15
korp/korp-server-gpu               toml    typ service · feat server,iceberg,minio…+16
korp/korp                          toml    typ exe · feat iceberg,sweden-clip,manual-embed…+5
korp/korp-cli                      toml    typ exe · feat client
korp/korp-probe                    toml    typ exe · feat client
korp/korp-ui                       toml    typ exe · feat client,map3d-gpu,collector-feeds…+2
korp/korp-ui-cpu                   toml    typ exe · feat client,collector-feeds,demo…+1
korp/korp-solo                     toml    typ exe · feat iceberg,sweden-clip,solo…+2
korp/korp-appliance-iso            toml    typ iso
korp/korp-installer                toml    typ installer · set data.fs=fat|xfs,data.io=safe|uring · perm 4
korp/korp-installer-fat-youki      toml    typ installer · set data.fs=fat|xfs,data.io=safe|uring · perm 4
korp/korp-installer-fat-microvm    toml    typ installer · set data.fs=fat|xfs,data.io=safe|uring · perm 4
korp/korp-installer-fat-podman     toml    typ installer · set data.fs=fat|xfs,data.io=safe|uring · perm 4
korp/korp-installer-fat-containerd toml    typ installer · set data.fs=fat|xfs,data.io=safe|uring · perm 4
korp/korp-live-iso                 toml    typ iso
korp/korp-live-fat-youki           toml    typ iso
  ↳ korp                           väg     [build.toolchain] i `korp`: [build.toolchain] `nordisk-cargo-toolchain`: no…
modgunn/modgunn                    toml    typ exe · feat scan,scip,warehouse…+2
  ↳ modgunn                        väg     `modgunn` har ingen `modgunn-build-thing`-låda (sökt under crates/ och rote…
knut/knutpipe                      toml    typ exe
knut/knut-spark-server             toml    typ exe · feat server
knut/bifrost                       toml    typ exe · feat cli
knut/knut-popviz                   toml    typ exe · feat gui
knut/knut-bifrost-wasm-guest       toml    typ wasm
  ↳ knut                           väg     `knut` har ingen `knut-build-thing`-låda (sökt under crates/ och roten) — b…
Skidbladnir/skidbladnir            toml    typ exe · feat pki
Skidbladnir/skidbladnir-znippy     toml    typ exe · feat pki,znippy
Skidbladnir/skidbladnir-probe      toml    typ exe
Skidbladnir/skidbladnir-testsvc    toml    typ exe
Skidbladnir/skidbladnir-matrix     toml    typ lib · feat pki,matrix
Skidbladnir/skidbladnir-promote    toml    typ lib · feat pki,promote
Skidbladnir/skidbladnir-service-d… toml    typ lib · feat pki,service-drive
Skidbladnir/skidbladnir-connected  toml    typ lib · feat pki,vault,openbao…+1
Skidbladnir/skidbladnir-federation toml    typ lib · feat pki,federation,upstream-aws…+1
Skidbladnir/skidbladnir-cluster    toml    typ lib · feat pki,kubernetes,talos
Skidbladnir/skidbladnir-sockets    toml    typ lib · feat pki,sockets
  ↳ Skidbladnir                    väg     [build.toolchain] i `Skidbladnir`: [build.toolchain] `nordisk-cargo-toolcha…
draupnir/draupnir                  toml    typ lib
draupnir/draupnir-seed             toml    typ lib · feat seed
draupnir/draupnir-tunnr            toml    typ lib · feat backend-tunnr
  ↳ draupnir                       väg     [build.toolchain] i `draupnir`: [build.toolchain] `nordisk-cargo-toolchain`…
dwarves-head/dwarves-server        toml    typ service · feat embed-all,read-fat,nornir/embed-ort…+3
dwarves-head/dwarves               toml    typ exe · feat cli,vault,release…+4
dwarves-head/dwarves-cli           toml    typ exe · feat cli,vault,funnel-action
dwarves-head/dwarves-ui            toml    typ exe · feat vm-boot
dwarves-head/dwarves-ui-gpu        toml    typ exe · feat gpu,vm-boot
dwarves-head/dwarves-solo          toml    typ exe · feat solo
  ↳ dwarves-head                   väg     `dwarves-head` har ingen `dwarves-head-build-thing`-låda (sökt under crates…
edda/autonom                       toml    typ exe · feat scan
edda/robotui                       toml    typ exe · feat watch
  ↳ edda                           väg     `edda` har ingen `edda-build-thing`-låda (sökt under crates/ och roten) — b…
facett/facet-wrapped-wasm          kod     typ wasm
facett/facet-wrapped-web           kod     typ package
gunnar/gunnar-server               kod     typ exe · feat server,engine-znippy,mimalloc…+3
gunnar/gunnar-server-thin          kod     typ exe · feat server,engine-znippy,mimalloc…+2
gunnar/gunnar-server-metered       kod     typ exe · feat server,engine-znippy,mimalloc…+4
gunnar/gunnar-server-metered-thin  kod     typ exe · feat server,engine-znippy,mimalloc…+3
gunnar/gunnar                      kod     typ exe · feat client
gunnar/gunnar-cli                  kod     typ exe · feat client,control
gunnar/gunnar-solo                 kod     typ exe · feat server,client,control
gunnar/gunnar-service              kod     typ service · feat server,systemd
gunnar/gunnar-image                kod     typ container
gunnar/gunnar-appliance-iso        kod     typ iso · set wireguard=on|off,kernel=on|off,kernel.preset=full|normal|slim…
gunnar/gunnar-installer            kod     typ installer · set dhcp=on|off,dhcp.static_ip=<value>,dhcp.gateway=<value>…
gunnar/gunnar-installer-open       kod     typ installer · set dhcp=on|off,dhcp.static_ip=<value>,dhcp.gateway=<value>…
gunnar/gunnar-installer-gce        kod     typ installer · set dhcp=on|off,dhcp.static_ip=<value>,dhcp.gateway=<value>…
gunnar/gunnar-installer-aws        kod     typ installer · set dhcp=on|off,dhcp.static_ip=<value>,dhcp.gateway=<value>…
gunnar/gunnar-installer-azure      kod     typ installer · set dhcp=on|off,dhcp.static_ip=<value>,dhcp.gateway=<value>…
gunnar/gunnar-installer-metered    kod     typ installer · set dhcp=on|off,dhcp.static_ip=<value>,dhcp.gateway=<value>…
gunnar/gunnar-installer-metered-a… kod     typ installer · set dhcp=on|off,dhcp.static_ip=<value>,dhcp.gateway=<value>…
gunnar/gunnar-installer-metered-a… kod     typ installer · set dhcp=on|off,dhcp.static_ip=<value>,dhcp.gateway=<value>…
gunnar-head/gunnar-server          toml    typ exe · feat server,engine-znippy,mimalloc…+3
gunnar-head/gunnar-server-thin     toml    typ exe · feat server,engine-znippy,mimalloc…+2
gunnar-head/gunnar-server-metered  toml    typ exe · feat server,engine-znippy,mimalloc…+4
gunnar-head/gunnar-server-metered… toml    typ exe · feat server,engine-znippy,mimalloc…+3
gunnar-head/gunnar                 toml    typ exe · feat client
gunnar-head/gunnar-cli             toml    typ exe · feat client,control
gunnar-head/gunnar-solo            toml    typ exe · feat server,client,control
gunnar-head/gunnar-service         toml    typ service · feat server,systemd
gunnar-head/gunnar-image           toml    typ container
gunnar-head/gunnar-appliance-iso   toml    typ iso · set wireguard=on|off,kernel=on|off,kernel.preset=full|normal|slim…
gunnar-head/gunnar-installer       toml    typ installer · set dhcp=on|off,dhcp.static_ip=<value>,dhcp.gateway=<value>…
gunnar-head/gunnar-installer-open  toml    typ installer · set dhcp=on|off,dhcp.static_ip=<value>,dhcp.gateway=<value>…
gunnar-head/gunnar-installer-gce   toml    typ installer · set dhcp=on|off,dhcp.static_ip=<value>,dhcp.gateway=<value>…
gunnar-head/gunnar-installer-aws   toml    typ installer · set dhcp=on|off,dhcp.static_ip=<value>,dhcp.gateway=<value>…
gunnar-head/gunnar-installer-azure toml    typ installer · set dhcp=on|off,dhcp.static_ip=<value>,dhcp.gateway=<value>…
gunnar-head/gunnar-installer-mete… toml    typ installer · set dhcp=on|off,dhcp.static_ip=<value>,dhcp.gateway=<value>…
gunnar-head/gunnar-installer-mete… toml    typ installer · set dhcp=on|off,dhcp.static_ip=<value>,dhcp.gateway=<value>…
gunnar-head/gunnar-installer-mete… toml    typ installer · set dhcp=on|off,dhcp.static_ip=<value>,dhcp.gateway=<value>…
  ↳ gunnar-head                    väg     `gunnar-head` har ingen `gunnar-head-build-thing`-låda (sökt under crates/ …
korp-collectors/korp-collectors    toml    typ exe · feat parsers
korp-collectors/korp-collectors-o… toml    typ exe · feat osm
korp-collectors/korp-collectors-o… toml    typ exe · feat osm-daemon
korp-collectors/korp-collectors-l… toml    typ lib · feat parsers
  ↳ korp-collectors                väg     [build.toolchain] i `korp-collectors`: [build.toolchain] `nordisk-cargo-too…
ordning/ordning-demo               toml    typ exe
ordning/ordning-web                toml    typ wasm
ordning/ordning-robot              toml    typ exe · feat robot-remote
ordning/ordning-core               toml    typ lib
  ↳ ordning                        väg     `ordning` har ingen `ordning-build-thing`-låda (sökt under crates/ och rote…
tunnr/tunnr-pid1                   toml    typ exe
tunnr/demo-container-pid1          toml    typ exe
tunnr/rdp-wayland-pid1             toml    typ exe
tunnr/tunnr-boot                   toml    typ exe · set testmatrix=on|off · perm 2
tunnr/tunnr-buildroot              toml    typ exe · set buildroot-fetch=on|off · perm 2
tunnr/tunnr-postbuild              toml    typ exe
tunnr/tunnr-demo                   toml    typ exe
tunnr/tunnr-build                  toml    typ lib · set buildroot-fetch=on|off,testmatrix=on|off · perm 4
tunnr/tunnr-build-thing            toml    typ lib
tunnr/tunnr-dispatch               toml    typ lib
tunnr/tunnr-brand                  toml    typ lib
tunnr/tunnr-licence                toml    typ lib
tunnr/nordisk-kernel-toolchain     toml    typ container
tunnr/tunnr-hello-world            toml    typ container
tunnr/korp-falkordb                toml    typ container
tunnr/rdp-app-container            toml    typ container
tunnr/rdp-korp-thin-container      toml    typ container
tunnr/tunnr-osless-server          toml    typ vm
tunnr/tunnr-osless-client          toml    typ vm
tunnr/korp-kvm                     toml    typ vm
tunnr/demo-container-kvm           toml    typ vm
tunnr/rdp-wayland-kvm              toml    typ vm
tunnr/tunnr-kernel                 toml    typ kernel · set kernel.preset=full|normal|slim|nuked,kernel.profile=vanill…
tunnr/tunnr-kernel-scsi            toml    typ kernel · set kernel.preset=full|normal|slim|nuked,kernel.profile=vanill…
tunnr/tunnr-kernel-nvme            toml    typ kernel · set kernel.preset=full|normal|slim|nuked,kernel.profile=vanill…
tunnr/tunnr-kernel-hyperv          toml    typ kernel · set kernel.preset=full|normal|slim|nuked,kernel.profile=vanill…
  ↳ tunnr                          väg     [build.toolchain] `siblings` names 1 repo(s) that are not checked out besid…
znippy/znippy                      toml    typ exe
znippy/znippy-full                 toml    typ exe · feat iceberg,sign
  ↳ znippy                         väg     [build.toolchain] i `znippy`: [build.toolchain] `nordisk-cargo-toolchain`: …
znippy-zoomies/osm-katana          toml    typ exe
znippy-zoomies/lbunzip2            toml    typ exe
znippy-zoomies/lgz                 toml    typ exe
znippy-zoomies/ljar                toml    typ exe
znippy-zoomies/lzip                toml    typ exe
  ↳ znippy-zoomies                 väg     [build.toolchain] i `znippy-zoomies`: [build.toolchain] `nordisk-cargo-tool…
────────────                       ───     ────────────────────────────────────────────
SUMMA                              ok      19 repo · 153 varianter · kod 2 · toml 17 · drift 0 · vägrad 0
SUMMA typer                        —       container · exe · installer · iso · kernel · lib · package · service · vm ·…
```

---

## Verification addendum — 2026-09-10, later the same day

The table above is the verbatim stdout of a run taken at **09:49**. It was
re-checked against the checkouts at **17:58** by reading the same files the forge
reads. **The table was not re-rendered** — that needs `dwarves buildthing
inventory`, whose door is the build-thing lane's — so the rows stand as taken and
this section says, per claim, whether they still hold. Nothing below is an
estimate; each line names the file the bytes came from.

| the claim above | still true? | measured |
|---|---|---|
| **no `<repo>-build-thing` crate** — dwarves · holger · nornir · modgunn · edda · knut · ordning | **YES, all seven** | neither `<repo>/crates/<repo>-build-thing` nor `<repo>/<repo>-build-thing` exists in any of the seven. The tillskott is still owed |
| **`[build.toolchain]` is not pinned, "no `image_sha256`"** — skade · korp · Skidbladnir · draupnir · korp-collectors · znippy · znippy-zoomies | **NO — STALE** | all seven now carry `image_sha256` immediately under `[build.toolchain]`, and all seven carry the SAME digest, `2cf9b012c9d2ffa42b447e5b0d127184e5a3f998dd2574d771477e9c8e366659` (skade:73 · korp:476 · Skidbladnir:182 · draupnir:62 · korp-collectors:89 · znippy:61 · znippy-zoomies:101). The pin landed after 09:49. **"the cheapest ten-repo win in the whole audit" has been taken** — whether the seven now take the `kod` road is what the re-render has to answer, and until it runs, that is UNKNOWN, not won |
| **tunnr: `siblings` names a checkout that is not there** | **YES**, and it is now named | `tunnr/.nornir/build-variants.toml:481` lists eleven siblings; ten resolve beside the repo and exactly one does not: **`tunnr-tailscale`**. (`tunnr-mullvad` is present.) The refusal line says "1 repo(s)" and stops there; the name is the actionable half |
| **`dwarves-head` and `gunnar-head` are full clones another lane made at 09:43** | **NO — both are GONE** | neither `/home/rickard/git/dwarves-head` nor `/home/rickard/git/gunnar-head` exists. They were transient, and the two rows in the table above describe checkouts that no longer exist. The verbatim-render principle is right and the rows stay; this note is what keeps the render honest between runs |
| `SUMMA … kod 2 · toml 17` | **UNKNOWN** | 2 of 19 was true at 09:49. With the seven pins landed it cannot be assumed to still read 2, and it must not be quoted forward until `dwarves buildthing inventory` runs again |

### Why this section exists instead of a fresh render

`dwarves buildthing inventory` was **not run**. The box was at **0 bytes free**
(938 G disk, 890 G used) at the peak of seven parallel lanes today, and
`/home/rickard/cargo-target` alone measured **412 G** — debug 335 G (of which
`debug/incremental` **98 G**), release 60 G — beside `.cargo` 19 G, containers
25 G, `.rustup` 6.3 G and `edda/target` 9.2 G. Deleting `debug/incremental`
(pure regenerable cache) returned the box to 149 G free. A full disk on this box
has zeroed `Cargo.lock` files before, so no lane should re-render this table
without `CARGO_INCREMENTAL=0` set and free space checked first.

**That is itself an inventory finding, not housekeeping.** A build system whose
own constellation inventory cannot be regenerated because the box it runs on
fills up under its own parallel lanes has a capacity fact missing from every
bench and test document it produces. `dwarves buildthing inventory` should emit
free-disk and target-dir size alongside the roster, so the next render carries
the reason it might be the last one that fitted.