Issue 1161, the operator's rule of 2026-10-18 (ADR 0435 §1: a node that is down has no effect on a delivery and plays what it missed when it is back). After issue 1160 a machine that does not report on its send is passed at the silent bound; but a machine already away when a tier was sent (a laptop asleep) was still sent to and waited for until that bound, about 15 minutes per delivery.
away.go judges a machine away at the send with the silent check's own verdict over the watchman's presence (ADR 0433 §3, issue 1183): a stuck presence key not moved, or the fallback rule. A sleeping machine is away once presence says so (about two minutes after it sleeps). If presence cannot be read, no machine is passed.
When a walk sends a tier, the away machines are left out of the send, recorded on the plan (Plan.Away, in the plan's JSON on the bus: no migration), and left out of the wait between tiers. The plan says ' was away: sent when it is heard again'.
A passed machine keeps its assignment and want of the plan's builds, so the backlog send of ADR 0360 §5 reaches it when it is heard again.
Tests: 1161/AC1-AC4 (unit, each failed first), AC5 and AC3 (integration: a two-tier plan with one machine's presence offline before the first send finishes without waiting for it, says it was away, and the machine still wants the newer build). Try build-1792394482289039163 passed in 3 m 46 s at 378e6578.
Delivery: the controller to novox (with build-agent to the four machines).
Issue 1161, the operator's rule of 2026-10-18 (ADR 0435 §1: a node that is down has no effect on a delivery and plays what it missed when it is back). After issue 1160 a machine that does not report on its send is passed at the silent bound; but a machine already away when a tier was sent (a laptop asleep) was still sent to and waited for until that bound, about 15 minutes per delivery.
- away.go judges a machine away at the send with the silent check's own verdict over the watchman's presence (ADR 0433 §3, issue 1183): a stuck presence key not moved, or the fallback rule. A sleeping machine is away once presence says so (about two minutes after it sleeps). If presence cannot be read, no machine is passed.
- When a walk sends a tier, the away machines are left out of the send, recorded on the plan (Plan.Away, in the plan's JSON on the bus: no migration), and left out of the wait between tiers. The plan says '<node> was away: sent when it is heard again'.
- A passed machine keeps its assignment and want of the plan's builds, so the backlog send of ADR 0360 §5 reaches it when it is heard again.
Tests: 1161/AC1-AC4 (unit, each failed first), AC5 and AC3 (integration: a two-tier plan with one machine's presence offline before the first send finishes without waiting for it, says it was away, and the machine still wants the newer build). Try build-1792394482289039163 passed in 3 m 46 s at 378e6578.
Delivery: the controller to novox (with build-agent to the four machines).
Reviewed-by: reviewer-r12@shanks at 378e65780d0b049e8fee8bbda35b9bf51816899d
mesh/merge-gate head 378e65780d0b merged into trunk 791b92c875d3 — pass: builds build-agent, mesh-controller → ace, g14, novox, shanks; no bus step; every …
Deliverynovox/mesh-controller@378e65780d0b — delivered since 2026-10-19T07:42:37Z
Delivery plan — builds build-agent, mesh-controller → ace, g14, novox, shanks; no bus step
tier 0: mesh-controller
tier 1: build-agent
ace: receives build-agent
g14: receives build-agent
novox: receives mesh-controller, build-agent
shanks: receives build-agent
build-agent keeps data (ADR 0233): what it holds is backed up before it moves
grants step: if this changes what the bus's user list says (a new tool, subject or user), novox is sent that list alone, every build there kept, before build-agent is judged on its first machine
Machines
mesh-controller on every machine running it: sent
build-agent on every machine running it: sent
Transitions
2026-10-19 07:26 (new) → proposed (announced): novox/mesh-controller#391's head announced
2026-10-19 07:33 proposed → checked (checked): a verdict names this commit and the trunk's head as its trunk commit
2026-10-19 07:33 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail
2026-10-19 07:35 ready → published (merged): on the trunk its modules follow: merged there, and its walk opened — or nothing for a walk to move
2026-10-19 07:35 published → delivering (go): its walk started: let go by this owner in its group's order, by a person, or on the controller's own path — not a failed walk that carried a later commit for it, after which it waits for a walk of its own commit
2026-10-19 07:42 delivering → delivered (done): its walk is done, carrying its own commit: every machine of its deploy plan passed, or was left as its policy says
The commit's note under refs/notes/mesh-plan keeps every transition: git log --notes=mesh-plan.
<!-- mesh-delivery:view -->
**Delivery** `novox/mesh-controller@378e65780d0b` — **delivered** since 2026-10-19T07:42:37Z
**Delivery plan** — builds build-agent, mesh-controller → ace, g14, novox, shanks; no bus step
- tier 0: mesh-controller
- tier 1: build-agent
- ace: receives build-agent
- g14: receives build-agent
- novox: receives mesh-controller, build-agent
- shanks: receives build-agent
- build-agent keeps data (ADR 0233): what it holds is backed up before it moves
- grants step: if this changes what the bus's user list says (a new tool, subject or user), novox is sent that list alone, every build there kept, before build-agent is judged on its first machine
**Machines**
- mesh-controller on every machine running it: sent
- build-agent on every machine running it: sent
**Transitions**
- 2026-10-19 07:26 (new) → proposed (announced): novox/mesh-controller#391's head announced
- 2026-10-19 07:33 proposed → checked (checked): a verdict names this commit and the trunk's head as its trunk commit
- 2026-10-19 07:33 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail
- 2026-10-19 07:35 ready → published (merged): on the trunk its modules follow: merged there, and its walk opened — or nothing for a walk to move
- 2026-10-19 07:35 published → delivering (go): its walk started: let go by this owner in its group's order, by a person, or on the controller's own path — not a failed walk that carried a later commit for it, after which it waits for a walk of its own commit
- 2026-10-19 07:42 delivering → delivered (done): its walk is done, carrying its own commit: every machine of its deploy plan passed, or was left as its policy says
The commit's note under `refs/notes/mesh-plan` keeps every transition: `git log --notes=mesh-plan`.
Merge check at 378e6578
Judged: head 378e65780d0b merged into trunk 791b92c875d3; read beside it: mesh-catalog b4527d9091e9, mesh-controller-main 791b92c875d3, mesh-host 2474bf28330f, mesh-tools 7412c5b6c9c5
mesh/merge-gate: PASS — every machine composes with the change as it did without (4 of 4 compose) (modules: build-agent, mesh-controller)
mesh/repo-check: PASS — its merge-check.sh passed
Delivery plan — builds build-agent, mesh-controller → ace, g14, novox, shanks; no bus step
tier 0: mesh-controller
tier 1: build-agent
ace: receives build-agent
g14: receives build-agent
novox: receives mesh-controller, build-agent
shanks: receives build-agent
build-agent keeps data (ADR 0233): what it holds is backed up before it moves
grants step: if this changes what the bus's user list says (a new tool, subject or user), novox is sent that list alone, every build there kept, before build-agent is judged on its first machine
read by no module's build: cmd/mesh-controller/away_integration_test.go, cmd/mesh-controller/away_test.go, testdata/store-tests
Run by the build seat on shanks as build-1792394790980128217 (builds --log build-1792394790980128217).
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Issue 1161, the operator's rule of 2026-10-18 (ADR 0435 §1: a node that is down has no effect on a delivery and plays what it missed when it is back). After issue 1160 a machine that does not report on its send is passed at the silent bound; but a machine already away when a tier was sent (a laptop asleep) was still sent to and waited for until that bound, about 15 minutes per delivery.
Tests: 1161/AC1-AC4 (unit, each failed first), AC5 and AC3 (integration: a two-tier plan with one machine's presence offline before the first send finishes without waiting for it, says it was away, and the machine still wants the newer build). Try build-1792394482289039163 passed in 3 m 46 s at
378e6578.Delivery: the controller to novox (with build-agent to the four machines).
Reviewed-by: reviewer-r12@shanks at
378e65780dDelivery
novox/mesh-controller@378e65780d0b— delivered since 2026-10-19T07:42:37ZDelivery plan — builds build-agent, mesh-controller → ace, g14, novox, shanks; no bus step
Machines
Transitions
The commit's note under
refs/notes/mesh-plankeeps every transition:git log --notes=mesh-plan.Merge check at
378e6578Judged: head
378e65780d0bmerged into trunk791b92c875d3; read beside it: mesh-catalogb4527d9091e9, mesh-controller-main791b92c875d3, mesh-host2474bf28330f, mesh-tools7412c5b6c9c5mesh/merge-gate: PASS — every machine composes with the change as it did without (4 of 4 compose) (modules: build-agent, mesh-controller)mesh/repo-check: PASS — its merge-check.sh passedDelivery plan — builds build-agent, mesh-controller → ace, g14, novox, shanks; no bus step
Run by the build seat on shanks as
build-1792394790980128217(builds --log build-1792394790980128217).