Files
hq/01-RESEARCH/028-the-meshs-output-channel/01-what-the-mesh-already-knows.md
T

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, plans or 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-notifier seat (ADR 0208), held on the laptop. Its send verb shows a notification, and history lists them. It was used through the console the day this effort opened.
  • Mail: a mail module provides smtp to 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.