Issue 066 resolved: a file and its reader are guarded by a gate, proven by the coupled-pair spike; design 20 says so
This commit is contained in:
+3
-3
@@ -1,9 +1,9 @@
|
||||
---
|
||||
status: located
|
||||
status: resolved
|
||||
opened: 2026-09-20
|
||||
located-in: [mesh-host internal/apply, mesh-controller internal/inventory (node_report)]
|
||||
fixed-by:
|
||||
amended-design:
|
||||
fixed-by: nothing new — a run-once validator before a service that restarts on the file is the grouping (ADR 0053); the lab's coupled-pair spike proves the service never serves what the validator refused; the visible half was issue 065
|
||||
amended-design: 03-DESIGN/01-to-be/20-writing-a-module.md
|
||||
---
|
||||
|
||||
# 066 — A partly applied declaration leaves a mixed state, with no rollback
|
||||
|
||||
+9
@@ -18,3 +18,12 @@
|
||||
the grouping question alone; it closes when a coupled pair that must not be half-applied is
|
||||
found in a module, and the declaration gains a way to say so — or when enough modules have run
|
||||
that the absence is evidence. The visibility half is done.
|
||||
|
||||
*2026-09-21, later.* The pairing was made on purpose, in a lab spike: a config file, a run-once
|
||||
validator, a service that reads the file once at start and restarts on it. The second push changed
|
||||
the file and made the validator refuse it. Observed: the file on disk was the new one, the service
|
||||
served the old one, and the machine reported the push failed. The half-state exists — and it is
|
||||
harmless, because the gate held: the refused configuration never reached the service. The grouping
|
||||
the report asked for is this order of three resources, made from what a manifest already has. The
|
||||
one shape it does not protect is a service that reads its file live, which a module should not
|
||||
write. Resolved; the pattern is in design 20 with the spike as its check.
|
||||
|
||||
Reference in New Issue
Block a user