ADR 0217, to-be 44: no change to a machine takes effect unseen
mesh/merge-gate pass: the change touches no module of the mesh's graph
mesh/repo-check pass: its merge-check.sh passed
mesh/delivery delivered
mesh/delivery-group group feat/no-change-takes-effect-unseen merged: every member is merged

Two incidents in two days had one shape: a change took effect that nobody saw first (issues 241
and 304). Three guards where the change is made — a settings layer read before it is replaced, a
push that says what it will change, a running module's data move acknowledged — each silent when
nothing is at stake. Accepted by the operator on 2026-10-08.

To-be 44 is in progress in mesh-controller (feat/no-change-takes-effect-unseen), migration 0078,
fitted onto what the controller does since: a whole-mesh push that says so and leaves a machine
waiting for a gate, a person's push that says what it recreates (ADR 0242), a named push's cascade.
The decision index is generated (ADR 0248), so no line is added to its README.
This commit is contained in:
jochen
2026-10-08 01:45:49 +02:00
parent 67599df951
commit e3caa4e1d4
3 changed files with 159 additions and 5 deletions
@@ -1,9 +1,9 @@
---
status: open
status: located
opened: 2026-10-05
located-in: [mesh-controller cmd/mesh-controller (settings), mesh-controller internal/inventory (SetSettings)]
fixed-by:
amended-design:
fixed-by: novox/mesh-controller PR #50
amended-design: 03-DESIGN/01-to-be/44-no-change-takes-effect-unseen.md
---
# 304 — Setting a module's settings replaces the whole layer, and nothing shows it first
@@ -41,5 +41,7 @@ around it is everything that makes it safe to use:
## Status
Open. Until it is fixed: read the layer (from the store, read-only) before setting it, and compare
the node's plan before and after.
Located: ADR 0217 decides the fix and to-be 44 designs it — `settings show` and its history, a set
that names what it adds, changes and removes and refuses a removal unless told `--replace`. Built in
mesh-controller PR #50; resolved when it runs. Until then: read the layer (from the store,
read-only) before setting it, and compare the node's plan before and after.