# mesh-self-check Holds the seat `mesh-self-check` (novox/hq ADR 0564 ยง6): the mesh's self-check, moved out of the controller. Go, one binary (`cmd/mesh-self-check`), served by a runtime of its own on its own bus account (`runs-as`), so that its account alone writes its buckets. ## What it does Every five minutes (the first run a minute after it starts) it runs its registry of probes, each within thirty seconds. A probe is one live invariant of a design, with its assertion as the controller had it, reading its facts on the bus (the bus module's tools for the bus's own state). A probe whose facts have no home on the bus yet answers `deferred`, naming them: never a pass. A probe that cannot run is said in the verdict at once, and written as a finding of its own (`probe..failed`) when the next run cannot run it either. What a probe finds is written as a finding, one key `..` per fault, only when what it says changes, and deleted when a run no longer sees it. The condition keeper (`mesh-conditions`) raises and clears conditions from them. A finding one look can be wrong about (a consumer behind after a burst) is written when two runs in a row see it. Every run ends with the event `checked`, the body of the controller's `doctor-heartbeat`, which the watchman (S10) and mesh-watcher on another machine hear: a self-check that stops checking is said through a path that does not pass through it. ## What it keeps - `mesh-self-check_findings`: what it finds wrong now. - `mesh-self-check_verdict`: the key `last`, the last run whole. - `mesh-self-check_verdicts`: every run (each probe's findings at most twenty), kept a week by the bucket's age. ## Its verbs and tools - `mesh-self-check.doctor`: the last verdict; `run=true` runs now; `probe=` one probe whole. - `mesh-self-check.probes`: the registry, with what each deferred probe lacks. - `self_check_findings`, `self_check_verdicts`: the reads of its buckets.