Files
mesh-catalog/modules/mesh-healers

mesh-healers

Holds the seat mesh-healers (novox/hq ADR 0564 §7, §8): the mesh's healers, moved out of the controller. Go, one binary (cmd/mesh-healers), served by a runtime of its own on its own bus account (runs-as).

What it does

It hears the condition keeper's condition-raised and condition-changed (seat mesh-conditions) on a durable consumer. A condition whose kind a healer answers is acted on within the healer's budget, its settle and the mesh-wide brake (twelve acts an hour). A repair is a call of the seat or tool that owns the act: H3 asks the grants part's grants_assert for the module whose consumer is gone. H4 (the controller's own consumer) and H5 (the provider's own repair) are registered and run elsewhere.

Each act is begun by a create of its key in attempts before it is made and finished after, so a holder that dies mid-act has spent it and a second instance cannot begin it again. The condition keeper writes the condition's tried, resolver and escalation from attempts; a healer writes no condition.

They act, and no lease turns it (issue 1126): the controller ended by its unassignment. While it ran, each act a healer would take was written to would, never to attempts; nothing writes would any more.

Each key of attempts and would lives a week from its last write, its own time to live (the buckets are declared key-ttl): nothing else deletes would. The healers' waits are keys of wakes whose time to live is the wait: settle.<condition key> ends with a settle and judges the condition again, fortnight ends when S15's oldest counted act leaves the fortnight and counts again. The watch of wakes hears each expiry; no timer runs in the process. A wait still running is on the bus across a restart; one that expired while no instance watched is judged at the start.

S15: it hears the seat mesh-hand-acts' act-recorded and watches the controller's hand-act log and writes healer-wanted for a cause repaired by hand twice within a fortnight; a drill and a person's decision by design never count.

What it keeps

  • mesh-healers_attempts: every act and escalation, each key kept a week.
  • mesh-healers_would: the newest act it would take per healer and condition while the controller ran, each key kept a week; nothing writes it any more.
  • mesh-healers_findings: the brake, its own blindness, and S15.
  • mesh-healers_wakes: the waits, each key living as long as it waits.

Its verbs and tools

  • mesh-healers.healers: the registry, the acts of the last days, the would-acts, the brake, whether it acts and why; recount=true counts the hand-act log again.
  • mesh-healers.heal: one act now on an open condition, by key and why.
  • mesh-healers.drill: records a drill in the hand-act log of the seat mesh-hand-acts as hand-act drill; with no holder of that seat it is refused. S15 never counts a drill.
  • healers_findings, healers_would, healers_wakes: the reads of its buckets.