Record what a machine says about itself and what the mesh keeps
The yes gates an assignment and the detail carries a value; they are one fact read two ways, and only one read was being kept.
This commit is contained in:
@@ -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 |
|
| 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 |
|
| 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
|
## Open
|
||||||
|
|
||||||
- **Whether one host can raise the substrate alone.** Move 1 assumes it. Stage 2 tests it, and
|
- **Whether one host can raise the substrate alone.** Move 1 assumes it. Stage 2 tests it, and
|
||||||
|
|||||||
Reference in New Issue
Block a user