3.3 KiB
01 — What the mesh already knows, and who hears it
The count
Over the 236 issue reports in 04-ISSUES/, on the day this effort opened:
- 15 say, in some wording, that a person found the fault by looking: "nobody was told", "nothing logged / said / alerted / emitted", "a person asked", "found by a person". Five of them are still open.
- 74 describe something that failed silently.
The search was a word match over the reports' text, so it undercounts reports that tell the same story in other words. It never overcounts by much: each of the fifteen was read.
The fifteen fall into three groups:
- The mesh knew, and kept it in a query. The fault was in
status,plansor a node's record, for whoever asked. Examples: a rollout waiting for ever (230), a machine refusing every declaration (233), a setting that cannot work stored and stopping the node (096). - The fault was in a log nothing reads. Examples: the bus refusing the controller's publishes (187), a dropped report (187, 230).
- The fault was invisible to the mesh itself. Examples: a resolver outside the mesh closed by its filter (198), a port narrowed without saying (086).
Only the first group is a matter of telling: the fact exists, and only delivery is missing. The other two need a source first. This effort is about the first, and about giving the other two a place to say something once they can.
What the controller computes and does not say
Read from status and node show on the day this effort opened. Each line is a fact the controller
already holds:
| fact | where it is today | example that day |
|---|---|---|
| a machine is out of touch | node show: "last heard from — out of touch 10m" |
a workstation after an upgrade |
| a machine refused its declaration | status: "refused" with the reason |
the same workstation, for 90 minutes |
| a failure repeats and will not fix itself | status: "stuck: the same failure N times since …" |
13 times on the laptop |
| machines run different hosts | status: the version table |
after a host release |
| something runs that the mesh did not write | node show: strays |
16 containers on one machine |
| a filter rule the mesh did not write | status |
one machine |
| a plan is waiting | plans |
issue 230: "for 0s", for ever |
| an assignment does not compose | the assign answer only |
issue 235 |
None of these is published. The bus carries a seat's own events (a build's outcome), a module's declared events, tool calls and declarations. It carries no event for any line above.
What exists to deliver with
- A machine's desktop: the
node-notifierseat (ADR 0208), held on the laptop. Itssendverb shows a notification, andhistorylists them. It was used through the console the day this effort opened. - Mail: a mail module provides
smtpto the mesh. - Chat: a Matrix server runs as a module on the home server.
- Home automation: a home-automation module runs there too, and its phone app can receive pushes.
- A seat shape for exactly this: to-be 32 §5 uses
telegram-sender(accepts: send,retain 7d,emits: delivered, failed,serves: status) as its worked example. A seat's stream exists from registration, so work queues until a holder appears.
No module sends to Telegram, a phone push service or SMS today.