Follow bar values so a dead watch speaks, date them by their reading, and widen the path check (hq ADR 0260)

A watch that died left the block silent, a removed block kept its value, and a value
frozen at its source looked fresh because its file was new. The follower now rereads a
silent value and says so, drops removed blocks, and dates each file by the reading's
own time. The path check takes /etc and /usr/local/lib in, ignores what a container sees
inside itself, and lists the five findings standing today, which may only go.
This commit is contained in:
jochen
2026-10-08 16:12:37 +02:00
parent 76b63744e6
commit 4f6cbd2197
10 changed files with 465 additions and 101 deletions
+2 -1
View File
@@ -58,7 +58,8 @@ permission is loosened. Two parts of this module carry the reading:
1. the process `mesh-power-draw` (`power draw`, as root) samples every 5 s and leaves the averaged rate
in `/run/mesh-power/draw`, this module's own directory, read by nothing but this module;
2. the module's bundle, which the runtime launches, puts each fresh reading in its state `draw`, keyed by
the machine's name: `{"text", "watts", "measures", "at"}`. A value lives 30 s (`ttl-seconds`).
the machine's name: `{"text", "watts", "measures", "at"}`. A value lives 30 s (`ttl-seconds`). The
state is `per-machine`: each machine's instance is granted its own machine's key and no other.
**State, not events, by bus load.** A reading is the current value and is replaced every five seconds;
nobody needs the ones before. A key per machine keeps one value, so the bus holds at most one reading
+2 -1
View File
@@ -23,7 +23,8 @@
"state": [
{
"name": "draw",
"ttl-seconds": 30
"ttl-seconds": 30,
"per-machine": true
}
],
"tools": [