Issue 1826, ADR 0502 (accepted): a required config value that a pull request introduces can now be held before its merge. A mesh-config proposal may name the open pull request; mesh-config checks the value against that pull request's declaration (the controller, part of the core, tells it what each head declares), asks the operator's Approve as for any trusted value, and keeps it apart. The merge gate composes the change with the approved held value; the merge writes it with its approval kept, only if it is held at the merged head; a close unmerged drops it and says so. It unblocks R4d, whose n8n needs media-gid on ace before its merge. One delivery group on branch fix/1826-held-config in mesh-controller and mesh-catalog. Reviewed in three rounds (reviewer-1826@shanks); later sub-items are noted on issue 1826.
This member: mesh-config takes pull-declares and held from the controller only, propose with pull (always asked of the operator), keeps held values apart from values, writes them at the merge (held at the merged head, same declaration digest) and drops them on a close (a close the forge cannot confirm drops nothing; a five-minute look finds what an event missed; the forge's answer is read as captured in testdata). mesh-delivery-gate asks the check again when a value is held or dropped.
Issue 1826, ADR 0502 (accepted): a required config value that a pull request introduces can now be held before its merge. A mesh-config proposal may name the open pull request; mesh-config checks the value against that pull request's declaration (the controller, part of the core, tells it what each head declares), asks the operator's Approve as for any trusted value, and keeps it apart. The merge gate composes the change with the approved held value; the merge writes it with its approval kept, only if it is held at the merged head; a close unmerged drops it and says so. It unblocks R4d, whose n8n needs media-gid on ace before its merge. One delivery group on branch `fix/1826-held-config` in mesh-controller and mesh-catalog. Reviewed in three rounds (reviewer-1826@shanks); later sub-items are noted on issue 1826.
This member: mesh-config takes pull-declares and held from the controller only, propose with pull (always asked of the operator), keeps held values apart from values, writes them at the merge (held at the merged head, same declaration digest) and drops them on a close (a close the forge cannot confirm drops nothing; a five-minute look finds what an event missed; the forge's answer is read as captured in testdata). mesh-delivery-gate asks the check again when a value is held or dropped.
Reviewed-by: reviewer-1826@shanks at 332aa75afd19c04083005e3c8792506ebee1db18
A key a pull request adds is declared by no registered manifest, so its value was refused and the
group's composed check could not pass. A proposal may now name the pull request: judged against what
the controller told of its head, asked of the operator, kept apart on Approve, applied at the merge,
dropped at a close.
mesh-config raises config-changed (hold, drop) naming the pull request; the delivery, or its group's
composed check, is asked again on the gate's own path, with why in the transition. Not the recheck verb.
mesh/merge-gate head 332aa75afd19 merged into trunk 74baa5378716 — pass: group fix/1826-held-config composed: every machine composes with the change as it …
mesh/check failed: g14: novox/mesh-catalog#437: checks/imagebuild/go.mod cannot be read to check its mesh-sdk pin: Gitea API /repos/novox/mesh-catalog…
mesh/repo-check head 332aa75afd19 merged into trunk 74baa5378716 beside mesh-controller#434@4357b368 — pass: its merge-check.sh passed, each part in its to…
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
build-agent on every machine running it: sent
mesh-config on every machine running it: sent
mesh-delivery-gate on every machine running it: sent
Transitions
2026-10-22 09:22 (new) → proposed (announced): novox/mesh-catalog#437's head announced
2026-10-22 09:23 proposed → checked (checked): a verdict names this commit and the trunk's head as its trunk commit
2026-10-22 09:23 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail
2026-10-22 09:40 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 09:40 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 09:44 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@332aa75afd19` — **delivered** since 2026-10-22T09:44:47Z
**Delivery plan** — builds mesh-config, mesh-delivery-gate → novox; no bus step
- tier 0: mesh-config, mesh-delivery-gate
- novox: receives mesh-config, mesh-delivery-gate
**Group** `fix/1826-held-config`: novox/mesh-catalog@332aa75afd19, novox/mesh-controller@4357b3688f58
- 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
- build-agent on every machine running it: sent
- mesh-config on every machine running it: sent
- mesh-delivery-gate on every machine running it: sent
**Transitions**
- 2026-10-22 09:22 (new) → proposed (announced): novox/mesh-catalog#437's head announced
- 2026-10-22 09:23 proposed → checked (checked): a verdict names this commit and the trunk's head as its trunk commit
- 2026-10-22 09:23 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail
- 2026-10-22 09:40 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 09:40 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 09:44 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`.
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 1826, ADR 0502 (accepted): a required config value that a pull request introduces can now be held before its merge. A mesh-config proposal may name the open pull request; mesh-config checks the value against that pull request's declaration (the controller, part of the core, tells it what each head declares), asks the operator's Approve as for any trusted value, and keeps it apart. The merge gate composes the change with the approved held value; the merge writes it with its approval kept, only if it is held at the merged head; a close unmerged drops it and says so. It unblocks R4d, whose n8n needs media-gid on ace before its merge. One delivery group on branch
fix/1826-held-configin mesh-controller and mesh-catalog. Reviewed in three rounds (reviewer-1826@shanks); later sub-items are noted on issue 1826.This member: mesh-config takes pull-declares and held from the controller only, propose with pull (always asked of the operator), keeps held values apart from values, writes them at the merge (held at the merged head, same declaration digest) and drops them on a close (a close the forge cannot confirm drops nothing; a five-minute look finds what an event missed; the forge's answer is read as captured in testdata). mesh-delivery-gate asks the check again when a value is held or dropped.
Reviewed-by: reviewer-1826@shanks at
332aa75afdDelivery
novox/mesh-catalog@332aa75afd19— delivered since 2026-10-22T09:44:47ZDelivery plan — builds mesh-config, mesh-delivery-gate → novox; no bus step
Group
fix/1826-held-config: novox/mesh-catalog@332aa75afd, novox/mesh-controller@4357b3688fMachines
Transitions
The commit's note under
refs/notes/mesh-plankeeps every transition:git log --notes=mesh-plan.