Files
mesh-catalog/modules/mesh-healers
jschoubben ea4dfaa5a2 mesh-hand-acts answers bounded, newest first; mesh-healers seeds from a partial answer (issue 1966 S8)
hand-acts read the whole log (84k entries, 47 MB) on every call and could never answer inside the call bound or
the bus payload. It now reads from the newest entry backwards, page by page, and stops at the window's start, at
900 KiB of acts or at 20 s, saying complete: false, cut and why. warrants is bounded the same way. mesh-healers'
start-up seed takes a partial answer and logs it, instead of retrying forever.

Quick fix: this (mesh-catalog only, about 1.5 h). Thorough fix: also the tool runner never freezing on an oversized
bundle line and logging unanswered calls (mesh-tools, a separate fix by another developer, lead's ruling Q3), and an
SDK-side bound. Chosen here: quick for this module, the thorough part running beside it; the byte cap is the
module's own (lead's ruling Q1, a `limit` argument is a later note).

Claude-Session: https://claude.ai/code/session_01NcbgfFfQ4Z9UE5jK32PmE5
2026-11-09 18:23:33 +01:00
..

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. No healer acts here today: H3 (a lost consumer) and H4 (a consumer far behind) ended with the controller (issue 1126), since nobody raises their kinds any more; the grants part makes a missing account consumer itself and raises mesh-grants.consumer-behind of its own. H5 (the provider's own repair) is registered and runs in the provider.

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.