mesh-delivery holds a delivery whose backup failed and release asks again; restic records a backup that cannot start (issues 1067, 1068) #353

Merged
mesh-tools merged 6 commits from feat/backup-before-send into main 2026-10-17 21:48:51 +00:00
Member

Design 47 milestone 4 (issue 980, ADR 0404), one delivery group with mesh-controller's feat/backup-before-send.

  • Issue 1067 (restic). A backup asked for now that cannot start (the night's lock held, the repository unopenable, nothing declared) is recorded as that module's last night with its reason, so the controller reads the backup's own words instead of silence.
  • Issue 1068 (mesh-delivery). A new observed row backup failed takes a delivering delivery to held while nothing of its plan was sent, reading the plan's backups record; the held reason names module, machine and words, and the hold does not lift by itself. release of such a hold calls the controller's delivery-backups-again and goes to delivering; a refused re-ask leaves it held. invokes grants the verb.
  • Integration test in bus_test.go: a plan-moved carrying a failed backup holds the delivery over a real bus; it runs here in the merge check. Its first check failed on the test's own ordering (a merge handled before the passing check, build-1792270513945903864); c898a93 publishes each event only after the module took the one before.
  • 4d03755 merges main (#354) into the branch: the trunk moved at 23:34 and no check was asked again (issue 1047); the patch against main is unchanged.

Reviewed-by: review@shanks at 4d03755c65

Design 47 milestone 4 (issue 980, ADR 0404), one delivery group with mesh-controller's `feat/backup-before-send`. - **Issue 1067 (restic).** A backup asked for now that cannot start (the night's lock held, the repository unopenable, nothing declared) is recorded as that module's last night with its reason, so the controller reads the backup's own words instead of silence. - **Issue 1068 (mesh-delivery).** A new observed row `backup failed` takes a delivering delivery to held while nothing of its plan was sent, reading the plan's `backups` record; the held reason names module, machine and words, and the hold does not lift by itself. `release` of such a hold calls the controller's `delivery-backups-again` and goes to delivering; a refused re-ask leaves it held. `invokes` grants the verb. - Integration test in bus_test.go: a plan-moved carrying a failed backup holds the delivery over a real bus; it runs here in the merge check. Its first check failed on the test's own ordering (a merge handled before the passing check, build-1792270513945903864); c898a93 publishes each event only after the module took the one before. - 4d03755 merges main (#354) into the branch: the trunk moved at 23:34 and no check was asked again (issue 1047); the patch against main is unchanged. Reviewed-by: review@shanks at 4d03755c6598b94697500d553b072aa54e98a711
mesh-tools added 4 commits 2026-10-17 20:55:09 +00:00
A release the controller refuses to take leaves the delivery held for its failed backup (issue 1068)
mesh/merge-gate waits for its group's composed check
mesh/repo-check head 82693a441cf0 merged into trunk f076cadecedc beside mesh-controller#375@a39d6ce7 — fail: its merge-check.sh failed: --- FAIL: TestAPlan…
mesh/delivery-group group feat/backup-before-send rejected: a member's own check failed
mesh/delivery superseded: a newer head of the same pull request
82693a441c
Author
Member

Delivery novox/mesh-catalog@4d03755c6598 — delivered since 2026-10-17T22:11:35Z

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

  • tier 0: mesh-delivery, restic
  • ace: receives restic
  • g14: receives restic
  • novox: receives mesh-delivery, restic
  • shanks: receives restic
  • restic 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 restic is judged on its first machine

Group feat/backup-before-send: novox/mesh-catalog@4d03755c65, novox/mesh-controller@91a7c1eaff

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

Machines

  • mesh-delivery on every machine running it: sent
  • restic on every machine running it: sent

Transitions

  • 2026-10-17 21:44 (new) → proposed (announced): novox/mesh-catalog#353's head announced
  • 2026-10-17 21:45 proposed → checked (checked): a verdict names this commit and the trunk's head as its trunk commit
  • 2026-10-17 21:45 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail
  • 2026-10-17 22:08 ready → published (merged): on the trunk its modules follow: merged there, and its walk opened — or nothing for a walk to move
  • 2026-10-17 22:08 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-17 22:11 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-catalog@4d03755c6598` — **delivered** since 2026-10-17T22:11:35Z **Delivery plan** — builds mesh-delivery, restic → ace, g14, novox, shanks; no bus step - tier 0: mesh-delivery, restic - ace: receives restic - g14: receives restic - novox: receives mesh-delivery, restic - shanks: receives restic - restic 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 restic is judged on its first machine **Group** `feat/backup-before-send`: novox/mesh-catalog@4d03755c6598, novox/mesh-controller@91a7c1eaffd2 - composed together: pass — every machine composes with the change as it did without (4 of 4 compose) **Machines** - mesh-delivery on every machine running it: sent - restic on every machine running it: sent **Transitions** - 2026-10-17 21:44 (new) → proposed (announced): novox/mesh-catalog#353's head announced - 2026-10-17 21:45 proposed → checked (checked): a verdict names this commit and the trunk's head as its trunk commit - 2026-10-17 21:45 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail - 2026-10-17 22:08 ready → published (merged): on the trunk its modules follow: merged there, and its walk opened — or nothing for a walk to move - 2026-10-17 22:08 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-17 22:11 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`.
jschoubben added 1 commit 2026-10-17 20:58:11 +00:00
Order the events of the failed-backup bus test: each after the module took the one before (issue 1068)
mesh/merge-gate waits for its group's composed check
mesh/repo-check head c898a937a1e3 merged into trunk f076cadecedc beside mesh-controller#375@a39d6ce7 — pass: its merge-check.sh passed, each part in its to…
mesh/delivery-group group feat/backup-before-send checking: 1 of 2 member(s) ready
mesh/delivery superseded: a newer head of the same pull request
c898a937a1
jschoubben added 1 commit 2026-10-17 21:44:07 +00:00
Bring the branch up to main after #354 (issue 1047: the trunk move asked no check)
mesh/repo-check head 4d03755c6598 merged into trunk ad80048c22d8 beside mesh-controller#375@91a7c1ea — pass: its merge-check.sh passed, each part in its to…
mesh/merge-gate head 4d03755c6598 merged into trunk ad80048c22d8 — pass: group feat/backup-before-send composed: every machine composes with the change as …
mesh/delivery-group group feat/backup-before-send stopped: a member was stopped
mesh/delivery delivered
4d03755c65
mesh-tools merged commit 3395af96bc into main 2026-10-17 21:48:51 +00:00
mesh-tools deleted branch feat/backup-before-send 2026-10-17 21:48:52 +00:00
Author
Member

mesh-delivery: the operator's Approve of this pull request's merge into main is ended: its head 91a7c1eaffd2 is no longer the pull request's head, or the pull request closed. Nothing is merged on it. The operator is asked again once the checks pass at the new head.

mesh-delivery: the operator's Approve of this pull request's merge into main is ended: its head 91a7c1eaffd2 is no longer the pull request's head, or the pull request closed. Nothing is merged on it. The operator is asked again once the checks pass at the new head.
Sign in to join this conversation.
No Reviewers
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: novox/mesh-catalog#353