Say the heartbeat's interval, export the host's validator, grant the genesis controller Phase 1 (hq to-be 45) #33

Merged
mesh-admin merged 1 commits from feat/a-core-that-cannot-fail-silently-phase-1 into main 2026-10-06 08:24:39 +00:00
Contributor

hq to-be 45 Phase 1, mesh-host's part. Merge first (before mesh-controller's PR of the same branch name, which imports validate at this branch's commit).

  • Alive carries interval_seconds (S1's bound is three intervals). An older controller ignores the field.
  • github.com/novox/mesh-host/validate: the host's own declaration.Parse, exported unchanged, so the controller's D1 (and later the merge gate) run the one validator every machine runs.
  • examples/foundation-first-node-nats.lock: the genesis controller is granted what it now composes: $KV.mesh-controller_conditions.>, $KV.mesh-controller_condition-history.>, the events condition-raised|changed|cleared and doctor-heartbeat, $SRV.INFO, and subscribe to $JS.EVENT.ADVISORY.CONSUMER.MAX_DELIVERIES.> / .DELETED.> (held equal to the controller's composition by mesh-controller's genesis test).

Tests: go test -count=1 -p 1 ./... green against a fresh nats:2.11; vet/gofmt clean. Rollout: the host first (it accepts both controller shapes); nothing else changes behaviour.

hq to-be 45 Phase 1, mesh-host's part. **Merge first** (before mesh-controller's PR of the same branch name, which imports `validate` at this branch's commit). - `Alive` carries `interval_seconds` (S1's bound is three intervals). An older controller ignores the field. - `github.com/novox/mesh-host/validate`: the host's own `declaration.Parse`, exported unchanged, so the controller's D1 (and later the merge gate) run the one validator every machine runs. - `examples/foundation-first-node-nats.lock`: the genesis controller is granted what it now composes: `$KV.mesh-controller_conditions.>`, `$KV.mesh-controller_condition-history.>`, the events `condition-raised|changed|cleared` and `doctor-heartbeat`, `$SRV.INFO`, and subscribe to `$JS.EVENT.ADVISORY.CONSUMER.MAX_DELIVERIES.>` / `.DELETED.>` (held equal to the controller's composition by mesh-controller's genesis test). Tests: `go test -count=1 -p 1 ./...` green against a fresh nats:2.11; vet/gofmt clean. Rollout: the host first (it accepts both controller shapes); nothing else changes behaviour.
mesh-admin added 1 commit 2026-10-06 08:22:24 +00:00
The controller's watchdog of a machine's heartbeat (S1) is bound to three
of its intervals, and a bound the controller guessed would not move when
the interval does: the heartbeat now carries interval_seconds.

Its self-check (D1) must judge every composed declaration as the host
does, and a second validator written from the host's rules would drift
from them: the host's own parsing is exported, unchanged, as
github.com/novox/mesh-host/validate.

The installer's first user list grants what the controller now composes
for itself: its condition buckets, the condition and doctor-heartbeat
events, the bus's two consumer advisories and $SRV.INFO — or the first
controller would be refused them until the broker's machine is pushed.
mesh-admin merged commit 1545b00a87 into main 2026-10-06 08:24:39 +00:00
mesh-admin deleted branch feat/a-core-that-cannot-fail-silently-phase-1 2026-10-06 08:24:39 +00:00
Author
Contributor

Delivery novox/mesh-host@1545b00a870e — held since 2026-10-06T23:05:28Z

Held for a person: merged without a passing check: only a person decides that it goes on — mesh-delivery.release with why lets it go on.

Delivery plan — builds mesh-host → ace, g14, novox, shanks; no bus step

  • tier 0: mesh-host
  • ace: receives mesh-host
  • g14: receives mesh-host
  • novox: receives mesh-host
  • shanks: receives mesh-host

Transitions

  • 2026-10-06 23:05 (new) → proposed (announced): novox/mesh-host#33 merged; its head was not heard by this owner, so it is made from the forge's word
  • 2026-10-06 23:05 proposed → held (merged-unchecked): merged without a passing check — a verdict known with it is taken first: only a person decides that it goes on

The commit's note under refs/notes/mesh-plan keeps every transition: git log --notes=mesh-plan.

<!-- mesh-delivery:view --> **Delivery** `novox/mesh-host@1545b00a870e` — **held** since 2026-10-06T23:05:28Z Held for a person: merged without a passing check: only a person decides that it goes on — `mesh-delivery.release` with why lets it go on. **Delivery plan** — builds mesh-host → ace, g14, novox, shanks; no bus step - tier 0: mesh-host - ace: receives mesh-host - g14: receives mesh-host - novox: receives mesh-host - shanks: receives mesh-host **Transitions** - 2026-10-06 23:05 (new) → proposed (announced): novox/mesh-host#33 merged; its head was not heard by this owner, so it is made from the forge's word - 2026-10-06 23:05 proposed → held (merged-unchecked): merged without a passing check — a verdict known with it is taken first: only a person decides that it goes on The commit's note under `refs/notes/mesh-plan` keeps every transition: `git log --notes=mesh-plan`.
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: novox/mesh-host#33