diff --git a/03-DESIGN/01-to-be/05-the-node-host.md b/03-DESIGN/01-to-be/05-the-node-host.md index 8495231..e45d6a2 100644 --- a/03-DESIGN/01-to-be/05-the-node-host.md +++ b/03-DESIGN/01-to-be/05-the-node-host.md @@ -237,6 +237,36 @@ Each decision above owes a test: | 0036 — disconnection is a situation | a node cut off and returned reconciles without being re-adopted | | 0008 — a failed step fails the apply | an apply with a failing step reports failure | +## What a machine says about itself, and what the mesh keeps of it + +*2026-08-31, from finding that half of it was being discarded.* + +**A capability is detected and never assumed** ([ADR 0009](../../02-DECISIONS/0009-modules-and-the-graph.md)), +so the only account of what a machine can do is the one the machine gave. That account has two +halves and the mesh was keeping one: + +| | | +|---|---| +| **the yes or no** | gates an assignment — *this machine has no seat, and nothing can be installed to fix that* | +| **the detail** | carries a value — `seat: card1-DP-1`, an architecture, an amount of memory | + +They are **one fact read two ways**: *can this run here* and *what should it be configured as*. A +module that must not be assigned without an OLED panel and one that dims itself differently on one +are reading the same line. Keeping only the first read makes the second unanswerable, and there is +nowhere else to get it — the detector is the only thing that looked. + +**The reason an absent capability is absent goes the same way, and it is the half a person needs +most.** *This machine has no container runtime* is the answer; *docker is not installed* is why. +The first is the mesh's to say and the second is only the machine's. + +**Never reported and reported nothing stay different.** One machine has not run the host yet; the +other ran it and can do nothing. Both refuse everything that requires a capability, and the +remedies are not remotely alike. + +*Checked by recording a profile with a present capability carrying a value and an absent one +carrying its reason, and requiring both to survive — and by requiring a machine that never +reported to be distinguishable from one that reported an empty list.* + ## Open - **Whether one host can raise the substrate alone.** Move 1 assumes it. Stage 2 tests it, and