Keep each node's declared packages in a state the pacman module reads (upgrade safety, issue 1840, ADR 0507 §5) #439

Merged
mesh-tools merged 9 commits from feat/upgrade-safety into main 2026-10-22 18:34:20 +00:00
Member

Milestone upgrade-safety (ADR 0507, ADR 0508, ADR 0510), one delivery group with mesh-sdk, mesh-catalog and hq on the branch feat/upgrade-safety. R4e's fourth prerequisite (ADR 0513 §1).

mesh-controller part (issue 1840 S3, S3b): the state declared-packages holds, per node, every package the modules assigned to it declare, present or absent, with the declaring modules, written only on change; the pacman module reads it. A proof that a process may watch its own state's bucket and no other. Pinned and vendored at the group's mesh-sdk head 8892a117 (which contains main's #68).

Checks: whole unit suite, vet with and without the integration tag; try build-1792685753183148105 passed (trunk 41c96287).

Reviewed-by: reviewer-us@shanks at abe356a262

Milestone upgrade-safety (ADR 0507, ADR 0508, ADR 0510), one delivery group with mesh-sdk, mesh-catalog and hq on the branch feat/upgrade-safety. R4e's fourth prerequisite (ADR 0513 §1). mesh-controller part (issue 1840 S3, S3b): the state `declared-packages` holds, per node, every package the modules assigned to it declare, present or absent, with the declaring modules, written only on change; the pacman module reads it. A proof that a process may watch its own state's bucket and no other. Pinned and vendored at the group's mesh-sdk head 8892a117 (which contains main's #68). Checks: whole unit suite, vet with and without the integration tag; try build-1792685753183148105 passed (trunk 41c96287). Reviewed-by: reviewer-us@shanks at abe356a262e8cba25ac1fa52ed889bc4308411b2
mesh-tools added 9 commits 2026-10-22 16:55:26 +00:00
# Conflicts:
#	go.mod
#	go.sum
#	testdata/beside/CAPTURED
#	vendor/modules.txt
Merge main and take the SDK at the milestone's mesh-sdk head 8892a117, which holds main's SDK and the milestone's (issue 1840)
mesh/merge-gate head abe356a262e8 merged into trunk 41c96287578e — pass: group feat/upgrade-safety composed: every machine composes with the change as it d…
mesh/repo-check head abe356a262e8 merged into trunk 41c96287578e beside mesh-catalog#450@86ba54b0 — pass: its merge-check.sh passed
mesh/check failed: unit: ..test: node:internal/modules/esm/resolve:241 | abe356a262e8 on 41c96287578e | unit 3372 run, 0 kept, 7 skipped | integration…
mesh/delivery covered after its failure: a later walk that contains it was delivered: plan-1792694058124013462 (novox/mesh-controller at 96441ea2 into ma…
mesh/delivery-group group feat/upgrade-safety delivered: every member is delivered
abe356a262
Author
Member

Delivery novox/mesh-controller@abe356a262e8 — failed since 2026-10-22T18:50:19Z

Covered: covered after its failure: a later walk that contains it was delivered: plan-1792694058124013462 (novox/mesh-controller at 96441ea2 into main, done, contains its merge 96441ea2)

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

Group feat/upgrade-safety: novox/hq@333e73830c, novox/mesh-catalog@86ba54b06e, novox/mesh-controller@abe356a262, novox/mesh-sdk@8892a11768

  • composed together: pass — every machine composes with the change as it did without (4 of 4 compose)

Machines

  • mesh-controller on every machine running it: sent
  • mesh-sdk on every machine running it: sent
  • build-agent on every machine running it: sent
  • kernel on every machine running it: sent
  • mesh-tools on every machine running it: sent
  • pacman on every machine running it: sent
  • audit-logger on every machine running it: sent
  • baserow on every machine running it: sent
  • bazarr on every machine running it: sent
  • bookshelf on every machine running it: sent
  • confluence on every machine running it: sent
  • gitea on every machine running it: sent
  • gitlab on every machine running it: sent
  • grafana on every machine running it: sent
  • home-assistant on every machine running it: sent
  • icecast on every machine running it: sent
  • influxdb on every machine running it: sent
  • jackett on every machine running it: sent
  • jira on every machine running it: sent
  • kometa on every machine running it: sent
  • lab on every machine running it: sent
  • letta on every machine running it: sent
  • lidarr on every machine running it: sent
  • mesh-catalog on every machine running it: sent
  • model-usage on every machine running it: sent
  • mosquitto on every machine running it: sent
  • netcheck on every machine running it: sent
  • nextcloud on every machine running it: sent
  • nodered on every machine running it: sent
  • ombi on every machine running it: sent
  • openai-consumer on every machine running it: sent
  • radarr on every machine running it: sent
  • redis on every machine running it: sent
  • route-adapter on every machine running it: sent
  • searxng on every machine running it: sent
  • showcase on every machine running it: sent
  • sonarr on every machine running it: sent
  • tautulli on every machine running it: sent
  • umami on every machine running it: sent
  • unifi on every machine running it: sent
  • zsh on every machine running it: sent

Transitions

  • 2026-10-22 16:55 (new) → proposed (announced): novox/mesh-controller#439's head announced
  • 2026-10-22 17:10 proposed → checked (checked): a verdict names this commit and the trunk's head as its trunk commit
  • 2026-10-22 17:10 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail
  • 2026-10-22 18:36 ready → published (merged): on the trunk its modules follow: merged there, and its walk opened — or nothing for a walk to move
  • 2026-10-22 18:36 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-22 18:50 delivering → failed (failed): its walk failed, carrying its own commit: a gate on a first machine (what it carried put back), a build, a machine

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

<!-- mesh-delivery:view --> **Delivery** `novox/mesh-controller@abe356a262e8` — **failed** since 2026-10-22T18:50:19Z **Covered**: covered after its failure: a later walk that contains it was delivered: plan-1792694058124013462 (novox/mesh-controller at 96441ea2 into main, done, contains its merge 96441ea2) **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 **Group** `feat/upgrade-safety`: novox/hq@333e73830c31, novox/mesh-catalog@86ba54b06e09, novox/mesh-controller@abe356a262e8, novox/mesh-sdk@8892a1176800 - composed together: pass — every machine composes with the change as it did without (4 of 4 compose) **Machines** - mesh-controller on every machine running it: sent - mesh-sdk on every machine running it: sent - build-agent on every machine running it: sent - kernel on every machine running it: sent - mesh-tools on every machine running it: sent - pacman on every machine running it: sent - audit-logger on every machine running it: sent - baserow on every machine running it: sent - bazarr on every machine running it: sent - bookshelf on every machine running it: sent - confluence on every machine running it: sent - gitea on every machine running it: sent - gitlab on every machine running it: sent - grafana on every machine running it: sent - home-assistant on every machine running it: sent - icecast on every machine running it: sent - influxdb on every machine running it: sent - jackett on every machine running it: sent - jira on every machine running it: sent - kometa on every machine running it: sent - lab on every machine running it: sent - letta on every machine running it: sent - lidarr on every machine running it: sent - mesh-catalog on every machine running it: sent - model-usage on every machine running it: sent - mosquitto on every machine running it: sent - netcheck on every machine running it: sent - nextcloud on every machine running it: sent - nodered on every machine running it: sent - ombi on every machine running it: sent - openai-consumer on every machine running it: sent - radarr on every machine running it: sent - redis on every machine running it: sent - route-adapter on every machine running it: sent - searxng on every machine running it: sent - showcase on every machine running it: sent - sonarr on every machine running it: sent - tautulli on every machine running it: sent - umami on every machine running it: sent - unifi on every machine running it: sent - zsh on every machine running it: sent **Transitions** - 2026-10-22 16:55 (new) → proposed (announced): novox/mesh-controller#439's head announced - 2026-10-22 17:10 proposed → checked (checked): a verdict names this commit and the trunk's head as its trunk commit - 2026-10-22 17:10 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail - 2026-10-22 18:36 ready → published (merged): on the trunk its modules follow: merged there, and its walk opened — or nothing for a walk to move - 2026-10-22 18:36 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-22 18:50 delivering → failed (failed): its walk failed, carrying its own commit: a gate on a first machine (what it carried put back), a build, a machine The commit's note under `refs/notes/mesh-plan` keeps every transition: `git log --notes=mesh-plan`.
mesh-tools merged commit 96441ea28a into main 2026-10-22 18:34:20 +00:00
mesh-tools deleted branch feat/upgrade-safety 2026-10-22 18:34:20 +00:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: novox/mesh-controller#439