mesh-delivery: mark-ready writes label then comment in the order the forge counts; a label awaiting its comment is not cleared (issue 913, issue 873)
#331
Merged
jschoubbenmerged 2 commits from feat/913-mark-ready into main2026-10-16 13:47:38 +00:00
Issue 913: mesh-delivery serves mark-ready (id, reviewed-by, why): refused unless the delivery's commit is its pull request's head; adds the label mesh/ready, then writes ready at <full sha> as mesh-tools, naming the reviewer; records d.Ready.
Issue 873: an empty-head mark (label without a counting comment yet) is cleared only after it was seen empty for a minute, and a mark just made through mark-ready is not cleared by a read that raced it; the clearing comment now says what is missing (no counting comment after the label and the last push) instead of 'pushed after it'.
Group feat/913-mark-ready with mesh-controller (the seat verb, optional) and hq (playbooks).
Independent review: approved after 2 rounds (larger model). Unit tests: go test ./cmd/mesh-delivery/ green.
Issue 913: mesh-delivery serves `mark-ready` (id, reviewed-by, why): refused unless the delivery's commit is its pull request's head; adds the label mesh/ready, then writes `ready at <full sha>` as mesh-tools, naming the reviewer; records d.Ready.
Issue 873: an empty-head mark (label without a counting comment yet) is cleared only after it was seen empty for a minute, and a mark just made through mark-ready is not cleared by a read that raced it; the clearing comment now says what is missing (no counting comment after the label and the last push) instead of 'pushed after it'.
Group `feat/913-mark-ready` with mesh-controller (the seat verb, optional) and hq (playbooks).
Independent review: approved after 2 rounds (larger model). Unit tests: `go test ./cmd/mesh-delivery/` green.
mesh/merge-gate head 2d1b20364f9b merged into trunk 3db85a0dde83 beside mesh-controller#357@114c99e0 — pass: builds mesh-delivery → novox; no bus step; eve…
mesh/repo-check head 2d1b20364f9b merged into trunk 3db85a0dde83 beside mesh-controller#357@114c99e0 — pass: its merge-check.sh passed, each part in its to…
composed together: pass — every machine composes with the change as it did without (3 of 4 compose)
Machines
mesh-delivery on every machine running it: sent
Transitions
2026-10-16 12:37 (new) → proposed (announced): novox/mesh-catalog#331's head announced
2026-10-16 12:42 proposed → checked (checked): a verdict names this commit and the trunk's head as its trunk commit
2026-10-16 12:42 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail
2026-10-16 13:17 ready → proposed (recheck): verdict out of date: judged beside the mark-ready controller change on a20680df; controller main is now 611e2275 (issue 914 fix)
2026-10-16 13:22 proposed → checked (checked): a verdict names this commit and the trunk's head as its trunk commit
2026-10-16 13:22 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail
2026-10-16 13:57 ready → held (hold): something holds it for a person: its group's composed check did not pass for the heads that merged, or it merged and no walk was opened for it
2026-10-16 13:58 held → delivering (release): the operator merged the mark-ready group at 15:47 to deliver it; its merge got no walk while the issue-914 delivery held the plans
2026-10-16 14:05 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@2d1b20364f9b` — **delivered** since 2026-10-16T14:05:45Z
**Delivery plan** — builds mesh-delivery → novox; no bus step
- tier 0: mesh-delivery
- novox: receives mesh-delivery
**Group** `feat/913-mark-ready`, in order: novox/hq@7b5f3582be90 → novox/mesh-controller@114c99e02a52 → novox/mesh-catalog@2d1b20364f9b
- novox/mesh-controller@114c99e02a52 before novox/mesh-catalog@2d1b20364f9b: built by
- composed together: pass — every machine composes with the change as it did without (3 of 4 compose)
**Machines**
- mesh-delivery on every machine running it: sent
**Transitions**
- 2026-10-16 12:37 (new) → proposed (announced): novox/mesh-catalog#331's head announced
- 2026-10-16 12:42 proposed → checked (checked): a verdict names this commit and the trunk's head as its trunk commit
- 2026-10-16 12:42 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail
- 2026-10-16 13:17 ready → proposed (recheck): verdict out of date: judged beside the mark-ready controller change on a20680df; controller main is now 611e2275 (issue 914 fix)
- 2026-10-16 13:22 proposed → checked (checked): a verdict names this commit and the trunk's head as its trunk commit
- 2026-10-16 13:22 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail
- 2026-10-16 13:57 ready → held (hold): something holds it for a person: its group's composed check did not pass for the heads that merged, or it merged and no walk was opened for it
- 2026-10-16 13:58 held → delivering (release): the operator merged the mark-ready group at 15:47 to deliver it; its merge got no walk while the issue-914 delivery held the plans
- 2026-10-16 14:05 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 2d1b2036
Judged: head 2d1b20364f9b merged into trunk 3db85a0dde83; read beside it: mesh-controller 7338adebf626, mesh-controller-main a20680dfe769, mesh-host cd13f7726ef0, mesh-tools 6b3e15042fee
Siblings read beside it: novox/mesh-controller#357114c99e02a52 merged onto a20680dfe769 (main); judged by sibling novox/mesh-controller#357 merge 7338adebf626
mesh/merge-gate: PASS — every machine composes with the change as it did without (4 of 4 compose) (modules: mesh-delivery)
mesh/repo-check: PASS — its merge-check.sh passed, each part in its toolchain: merge-check.sh (go), merge-check-typescript.sh (typescript)
Delivery plan — builds mesh-delivery → novox; no bus step
tier 0: mesh-delivery
novox: receives mesh-delivery
read by no module's build: modules/mesh-delivery/cmd/mesh-delivery/fakes_test.go, modules/mesh-delivery/cmd/mesh-delivery/markready_test.go
Run by the build seat on shanks as build-1792154229320428616 (builds --log build-1792154229320428616).
--- the gate: mesh-delivery
mesh-delivery: ok, 1 tool(s), invokes seat:mesh-controller.delivery-plan, seat:mesh-controller.delivery-order, seat:mesh-controller.delivery-check, seat:mesh-controller.deliver, seat:mesh-controller.delivery-stop, seat:mesh-controller.delivery-walks, seat:mesh-controller.forget-checks, gitea.gitea_note_append, gitea.gitea_delivery_view, gitea.gitea_commit_status, gitea.gitea_commit_statuses, gitea.gitea_contains, gitea.gitea_open_pulls, gitea.gitea_merge_pull_request, gitea.gitea_add_comment, gitea.gitea_api, keeps state deliveries, groups
long-running resources without health: 0
files asking for a setting without saying whether it is trusted: 0
1 manifest(s) checked. Judged against the seats this binary carries; a claim on one of the mesh's own seats is judged fully at registration, and a seat declared by a module not given here reads as unknown. Identities judged on a 6-character machine name, against the bounds of the providers given here
judging 1 module(s) changed against 4 machine(s), as the snapshot of 2026-10-16T12:30:06Z says they run
composing every machine as the mesh is
the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued
the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued
composing every machine with the change
the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued
the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued
merge gate: PASS — every machine composes with the change as it did without (4 of 4 compose)
judged by controller development build against the facts of 2026-10-16T12:30:06Z
modules the change moves:
- mesh-delivery (changed)
machines:
- a machine (f35): composes
- holds mesh-dns-resolver (idt): composes
- holds git, holds mesh-artifact-store, holds mesh-broker, holds mesh-catalog, holds mesh-delivery, holds mesh-dns-resolver, holds mesh-store, holds mesh-vault, holds npm-package-registry, the control node, the hub (ygcyr): composes
- a machine (yvbpsm): composes
a merge would rebuild 1 module(s) in 1 tier(s): mesh-delivery
notes:
- modules/mesh-delivery/cmd/mesh-delivery/fakes_test.go and modules/mesh-delivery/cmd/mesh-delivery/markready_test.go read by no module's build, and rebuild nothing (issue 280)
--- its merge-check.sh (go toolchain)
ok git.novox.be/novox/mesh-catalog/checks/words 0.003s
words: 12 retired words and 70 daemons' lines, none in the 52710 strings of 794 files
ok git.novox.be/novox/mesh-catalog/checks/agenthome 0.013s
agent-home: no archive and no file written into under the agent's home
ok git.novox.be/novox/mesh-catalog/checks/mailstore 0.010s
mail-store: claimed only by mesh-mail
ok git.novox.be/novox/mesh-catalog/checks/secrets 0.014s
secrets: no setting can replace a vault secret in a mergeable file (1 known, nested)
ok git.novox.be/novox/mesh-catalog/checks/predefined 0.257s
predefined.json: 2 key(s), none removed that a module names
ok git.novox.be/novox/mesh-catalog/checks/config 0.015s
config: no moved module says settings, takes-settings or ${setting:<key>}, or takes a whole layer (0 not yet moved)
ok git.novox.be/novox/mesh-catalog/checks/templates 0.012s
templates: no module keeps a file's text inline but the 0 listed
ok git.novox.be/novox/mesh-catalog/checks/paths 0.006s
paths: no module names another's state on its machine (3 known, listed to go)
long-running resources without health: 61, as kept
ok git.novox.be/novox/mesh-catalog/checks/deps 0.220s
testing modules/mesh-delivery
ok mesh-delivery/cmd/mesh-delivery 3.362s
--- its merge-check-typescript.sh (typescript toolchain)
**Merge check** at `2d1b2036`
Judged: head `2d1b20364f9b` merged into trunk `3db85a0dde83`; read beside it: mesh-controller `7338adebf626`, mesh-controller-main `a20680dfe769`, mesh-host `cd13f7726ef0`, mesh-tools `6b3e15042fee`
Siblings read beside it: novox/mesh-controller#357 `114c99e02a52` merged onto `a20680dfe769` (main); judged by sibling novox/mesh-controller#357 merge 7338adebf626
- `mesh/merge-gate`: **PASS** — every machine composes with the change as it did without (4 of 4 compose) (modules: mesh-delivery)
- `mesh/repo-check`: **PASS** — its merge-check.sh passed, each part in its toolchain: merge-check.sh (go), merge-check-typescript.sh (typescript)
**Delivery plan** — builds mesh-delivery → novox; no bus step
- tier 0: mesh-delivery
- novox: receives mesh-delivery
- read by no module's build: modules/mesh-delivery/cmd/mesh-delivery/fakes_test.go, modules/mesh-delivery/cmd/mesh-delivery/markready_test.go
Run by the build seat on shanks as `build-1792154229320428616` (`builds --log build-1792154229320428616`).
```
--- the gate: mesh-delivery
mesh-delivery: ok, 1 tool(s), invokes seat:mesh-controller.delivery-plan, seat:mesh-controller.delivery-order, seat:mesh-controller.delivery-check, seat:mesh-controller.deliver, seat:mesh-controller.delivery-stop, seat:mesh-controller.delivery-walks, seat:mesh-controller.forget-checks, gitea.gitea_note_append, gitea.gitea_delivery_view, gitea.gitea_commit_status, gitea.gitea_commit_statuses, gitea.gitea_contains, gitea.gitea_open_pulls, gitea.gitea_merge_pull_request, gitea.gitea_add_comment, gitea.gitea_api, keeps state deliveries, groups
long-running resources without health: 0
files asking for a setting without saying whether it is trusted: 0
1 manifest(s) checked. Judged against the seats this binary carries; a claim on one of the mesh's own seats is judged fully at registration, and a seat declared by a module not given here reads as unknown. Identities judged on a 6-character machine name, against the bounds of the providers given here
judging 1 module(s) changed against 4 machine(s), as the snapshot of 2026-10-16T12:30:06Z says they run
composing every machine as the mesh is
the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued
the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued
composing every machine with the change
the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued
the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued
merge gate: PASS — every machine composes with the change as it did without (4 of 4 compose)
judged by controller development build against the facts of 2026-10-16T12:30:06Z
modules the change moves:
- mesh-delivery (changed)
machines:
- a machine (f35): composes
- holds mesh-dns-resolver (idt): composes
- holds git, holds mesh-artifact-store, holds mesh-broker, holds mesh-catalog, holds mesh-delivery, holds mesh-dns-resolver, holds mesh-store, holds mesh-vault, holds npm-package-registry, the control node, the hub (ygcyr): composes
- a machine (yvbpsm): composes
a merge would rebuild 1 module(s) in 1 tier(s): mesh-delivery
notes:
- modules/mesh-delivery/cmd/mesh-delivery/fakes_test.go and modules/mesh-delivery/cmd/mesh-delivery/markready_test.go read by no module's build, and rebuild nothing (issue 280)
--- its merge-check.sh (go toolchain)
ok git.novox.be/novox/mesh-catalog/checks/words 0.003s
words: 12 retired words and 70 daemons' lines, none in the 52710 strings of 794 files
ok git.novox.be/novox/mesh-catalog/checks/agenthome 0.013s
agent-home: no archive and no file written into under the agent's home
ok git.novox.be/novox/mesh-catalog/checks/mailstore 0.010s
mail-store: claimed only by mesh-mail
ok git.novox.be/novox/mesh-catalog/checks/secrets 0.014s
secrets: no setting can replace a vault secret in a mergeable file (1 known, nested)
ok git.novox.be/novox/mesh-catalog/checks/predefined 0.257s
predefined.json: 2 key(s), none removed that a module names
ok git.novox.be/novox/mesh-catalog/checks/config 0.015s
config: no moved module says settings, takes-settings or ${setting:<key>}, or takes a whole layer (0 not yet moved)
ok git.novox.be/novox/mesh-catalog/checks/templates 0.012s
templates: no module keeps a file's text inline but the 0 listed
ok git.novox.be/novox/mesh-catalog/checks/paths 0.006s
paths: no module names another's state on its machine (3 known, listed to go)
long-running resources without health: 61, as kept
ok git.novox.be/novox/mesh-catalog/checks/deps 0.220s
testing modules/mesh-delivery
ok mesh-delivery/cmd/mesh-delivery 3.362s
--- its merge-check-typescript.sh (typescript toolchain)
```
Merge check at 2d1b2036
Judged: head 2d1b20364f9b merged into trunk 3db85a0dde83; read beside it: mesh-controller 6d3ffaa210c5, mesh-controller-main 611e2275cf7c, mesh-host cd13f7726ef0, mesh-tools 7412c5b6c9c5
Siblings read beside it: novox/mesh-controller#357114c99e02a52 merged onto 611e2275cf7c (main); judged by sibling novox/mesh-controller#357 merge 6d3ffaa210c5
mesh/merge-gate: PASS — every machine composes with the change as it did without (3 of 4 compose) (modules: mesh-delivery)
mesh/repo-check: PASS — its merge-check.sh passed, each part in its toolchain: merge-check.sh (go), merge-check-typescript.sh (typescript)
Delivery plan — builds mesh-delivery → novox; no bus step
tier 0: mesh-delivery
novox: receives mesh-delivery
read by no module's build: modules/mesh-delivery/cmd/mesh-delivery/fakes_test.go, modules/mesh-delivery/cmd/mesh-delivery/markready_test.go
Run by the build seat on ace as build-1792156634253284581 (builds --log build-1792156634253284581).
--- the gate: mesh-delivery
mesh-delivery: ok, 1 tool(s), invokes seat:mesh-controller.delivery-plan, seat:mesh-controller.delivery-order, seat:mesh-controller.delivery-check, seat:mesh-controller.deliver, seat:mesh-controller.delivery-stop, seat:mesh-controller.delivery-walks, seat:mesh-controller.forget-checks, gitea.gitea_note_append, gitea.gitea_delivery_view, gitea.gitea_commit_status, gitea.gitea_commit_statuses, gitea.gitea_contains, gitea.gitea_open_pulls, gitea.gitea_merge_pull_request, gitea.gitea_add_comment, gitea.gitea_api, keeps state deliveries, groups
long-running resources without health: 0
files asking for a setting without saying whether it is trusted: 0
1 manifest(s) checked. Judged against the seats this binary carries; a claim on one of the mesh's own seats is judged fully at registration, and a seat declared by a module not given here reads as unknown. Identities judged on a 6-character machine name, against the bounds of the providers given here
judging 1 module(s) changed against 4 machine(s), as the snapshot of 2026-10-16T13:14:38Z says they run
composing every machine as the mesh is
the bus's user list leaves out 6 user(s) the mesh has minted no credential for: controller, node.f35, provisioner.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued
the bus's user list leaves out 6 user(s) the mesh has minted no credential for: controller, node.f35, provisioner.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued
composing every machine with the change
the bus's user list leaves out 6 user(s) the mesh has minted no credential for: controller, node.f35, provisioner.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued
the bus's user list leaves out 6 user(s) the mesh has minted no credential for: controller, node.f35, provisioner.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued
merge gate: PASS — every machine composes with the change as it did without (3 of 4 compose)
judged by controller development build against the facts of 2026-10-16T13:14:38Z
modules the change moves:
- mesh-delivery (changed)
machines:
- a machine (f35): does not compose
- holds mesh-dns-resolver (idt): composes
- holds git, holds mesh-artifact-store, holds mesh-broker, holds mesh-catalog, holds mesh-config, holds mesh-delivery, holds mesh-dns-resolver, holds mesh-provisioner, holds mesh-store, holds mesh-vault, holds npm-package-registry, the control node, the hub (ygcyr): composes
- a machine (yvbpsm): composes
a merge would rebuild 1 module(s) in 1 tier(s): mesh-delivery
notes:
- a machine (f35) does not compose on the mesh today either: mesh-provisioner-client on f35 has no bus credential: nothing was issued for provisioner.f35, and a push would seal a placeholder its process cannot read (ygcyr/hq issue 203). `module issue mesh-provisioner-client --node f35`, then push again
- modules/mesh-delivery/cmd/mesh-delivery/fakes_test.go and modules/mesh-delivery/cmd/mesh-delivery/markready_test.go read by no module's build, and rebuild nothing (issue 280)
--- its merge-check.sh (go toolchain)
ok git.novox.be/novox/mesh-catalog/checks/words 0.002s
words: 12 retired words and 70 daemons' lines, none in the 52710 strings of 794 files
ok git.novox.be/novox/mesh-catalog/checks/agenthome 0.010s
agent-home: no archive and no file written into under the agent's home
ok git.novox.be/novox/mesh-catalog/checks/mailstore 0.008s
mail-store: claimed only by mesh-mail
ok git.novox.be/novox/mesh-catalog/checks/secrets 0.011s
secrets: no setting can replace a vault secret in a mergeable file (1 known, nested)
ok git.novox.be/novox/mesh-catalog/checks/predefined 0.237s
predefined.json: 2 key(s), none removed that a module names
ok git.novox.be/novox/mesh-catalog/checks/config 0.012s
config: no moved module says settings, takes-settings or ${setting:<key>}, or takes a whole layer (0 not yet moved)
ok git.novox.be/novox/mesh-catalog/checks/templates 0.010s
templates: no module keeps a file's text inline but the 0 listed
ok git.novox.be/novox/mesh-catalog/checks/paths 0.006s
paths: no module names another's state on its machine (3 known, listed to go)
long-running resources without health: 61, as kept
ok git.novox.be/novox/mesh-catalog/checks/deps 0.194s
testing modules/mesh-delivery
ok mesh-delivery/cmd/mesh-delivery 2.716s
--- its merge-check-typescript.sh (typescript toolchain)
**Merge check** at `2d1b2036`
Judged: head `2d1b20364f9b` merged into trunk `3db85a0dde83`; read beside it: mesh-controller `6d3ffaa210c5`, mesh-controller-main `611e2275cf7c`, mesh-host `cd13f7726ef0`, mesh-tools `7412c5b6c9c5`
Siblings read beside it: novox/mesh-controller#357 `114c99e02a52` merged onto `611e2275cf7c` (main); judged by sibling novox/mesh-controller#357 merge 6d3ffaa210c5
- `mesh/merge-gate`: **PASS** — every machine composes with the change as it did without (3 of 4 compose) (modules: mesh-delivery)
- `mesh/repo-check`: **PASS** — its merge-check.sh passed, each part in its toolchain: merge-check.sh (go), merge-check-typescript.sh (typescript)
**Delivery plan** — builds mesh-delivery → novox; no bus step
- tier 0: mesh-delivery
- novox: receives mesh-delivery
- read by no module's build: modules/mesh-delivery/cmd/mesh-delivery/fakes_test.go, modules/mesh-delivery/cmd/mesh-delivery/markready_test.go
Run by the build seat on ace as `build-1792156634253284581` (`builds --log build-1792156634253284581`).
```
--- the gate: mesh-delivery
mesh-delivery: ok, 1 tool(s), invokes seat:mesh-controller.delivery-plan, seat:mesh-controller.delivery-order, seat:mesh-controller.delivery-check, seat:mesh-controller.deliver, seat:mesh-controller.delivery-stop, seat:mesh-controller.delivery-walks, seat:mesh-controller.forget-checks, gitea.gitea_note_append, gitea.gitea_delivery_view, gitea.gitea_commit_status, gitea.gitea_commit_statuses, gitea.gitea_contains, gitea.gitea_open_pulls, gitea.gitea_merge_pull_request, gitea.gitea_add_comment, gitea.gitea_api, keeps state deliveries, groups
long-running resources without health: 0
files asking for a setting without saying whether it is trusted: 0
1 manifest(s) checked. Judged against the seats this binary carries; a claim on one of the mesh's own seats is judged fully at registration, and a seat declared by a module not given here reads as unknown. Identities judged on a 6-character machine name, against the bounds of the providers given here
judging 1 module(s) changed against 4 machine(s), as the snapshot of 2026-10-16T13:14:38Z says they run
composing every machine as the mesh is
the bus's user list leaves out 6 user(s) the mesh has minted no credential for: controller, node.f35, provisioner.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued
the bus's user list leaves out 6 user(s) the mesh has minted no credential for: controller, node.f35, provisioner.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued
composing every machine with the change
the bus's user list leaves out 6 user(s) the mesh has minted no credential for: controller, node.f35, provisioner.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued
the bus's user list leaves out 6 user(s) the mesh has minted no credential for: controller, node.f35, provisioner.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued
merge gate: PASS — every machine composes with the change as it did without (3 of 4 compose)
judged by controller development build against the facts of 2026-10-16T13:14:38Z
modules the change moves:
- mesh-delivery (changed)
machines:
- a machine (f35): does not compose
- holds mesh-dns-resolver (idt): composes
- holds git, holds mesh-artifact-store, holds mesh-broker, holds mesh-catalog, holds mesh-config, holds mesh-delivery, holds mesh-dns-resolver, holds mesh-provisioner, holds mesh-store, holds mesh-vault, holds npm-package-registry, the control node, the hub (ygcyr): composes
- a machine (yvbpsm): composes
a merge would rebuild 1 module(s) in 1 tier(s): mesh-delivery
notes:
- a machine (f35) does not compose on the mesh today either: mesh-provisioner-client on f35 has no bus credential: nothing was issued for provisioner.f35, and a push would seal a placeholder its process cannot read (ygcyr/hq issue 203). `module issue mesh-provisioner-client --node f35`, then push again
- modules/mesh-delivery/cmd/mesh-delivery/fakes_test.go and modules/mesh-delivery/cmd/mesh-delivery/markready_test.go read by no module's build, and rebuild nothing (issue 280)
--- its merge-check.sh (go toolchain)
ok git.novox.be/novox/mesh-catalog/checks/words 0.002s
words: 12 retired words and 70 daemons' lines, none in the 52710 strings of 794 files
ok git.novox.be/novox/mesh-catalog/checks/agenthome 0.010s
agent-home: no archive and no file written into under the agent's home
ok git.novox.be/novox/mesh-catalog/checks/mailstore 0.008s
mail-store: claimed only by mesh-mail
ok git.novox.be/novox/mesh-catalog/checks/secrets 0.011s
secrets: no setting can replace a vault secret in a mergeable file (1 known, nested)
ok git.novox.be/novox/mesh-catalog/checks/predefined 0.237s
predefined.json: 2 key(s), none removed that a module names
ok git.novox.be/novox/mesh-catalog/checks/config 0.012s
config: no moved module says settings, takes-settings or ${setting:<key>}, or takes a whole layer (0 not yet moved)
ok git.novox.be/novox/mesh-catalog/checks/templates 0.010s
templates: no module keeps a file's text inline but the 0 listed
ok git.novox.be/novox/mesh-catalog/checks/paths 0.006s
paths: no module names another's state on its machine (3 known, listed to go)
long-running resources without health: 61, as kept
ok git.novox.be/novox/mesh-catalog/checks/deps 0.194s
testing modules/mesh-delivery
ok mesh-delivery/cmd/mesh-delivery 2.716s
--- its merge-check-typescript.sh (typescript toolchain)
```
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 913: mesh-delivery serves
mark-ready(id, reviewed-by, why): refused unless the delivery's commit is its pull request's head; adds the label mesh/ready, then writesready at <full sha>as mesh-tools, naming the reviewer; records d.Ready.Issue 873: an empty-head mark (label without a counting comment yet) is cleared only after it was seen empty for a minute, and a mark just made through mark-ready is not cleared by a read that raced it; the clearing comment now says what is missing (no counting comment after the label and the last push) instead of 'pushed after it'.
Group
feat/913-mark-readywith mesh-controller (the seat verb, optional) and hq (playbooks).Independent review: approved after 2 rounds (larger model). Unit tests:
go test ./cmd/mesh-delivery/green.Delivery
novox/mesh-catalog@2d1b20364f9b— delivered since 2026-10-16T14:05:45ZDelivery plan — builds mesh-delivery → novox; no bus step
Group
feat/913-mark-ready, in order: novox/hq@7b5f3582be → novox/mesh-controller@114c99e02a → novox/mesh-catalog@2d1b20364fMachines
Transitions
The commit's note under
refs/notes/mesh-plankeeps every transition:git log --notes=mesh-plan.Merge check at
2d1b2036Judged: head
2d1b20364f9bmerged into trunk3db85a0dde83; read beside it: mesh-controller7338adebf626, mesh-controller-maina20680dfe769, mesh-hostcd13f7726ef0, mesh-tools6b3e15042feeSiblings read beside it: novox/mesh-controller#357
114c99e02a52merged ontoa20680dfe769(main); judged by sibling novox/mesh-controller#357 merge 7338adebf626mesh/merge-gate: PASS — every machine composes with the change as it did without (4 of 4 compose) (modules: mesh-delivery)mesh/repo-check: PASS — its merge-check.sh passed, each part in its toolchain: merge-check.sh (go), merge-check-typescript.sh (typescript)Delivery plan — builds mesh-delivery → novox; no bus step
Run by the build seat on shanks as
build-1792154229320428616(builds --log build-1792154229320428616).Merge check at
2d1b2036Judged: head
2d1b20364f9bmerged into trunk3db85a0dde83; read beside it: mesh-controller6d3ffaa210c5, mesh-controller-main611e2275cf7c, mesh-hostcd13f7726ef0, mesh-tools7412c5b6c9c5Siblings read beside it: novox/mesh-controller#357
114c99e02a52merged onto611e2275cf7c(main); judged by sibling novox/mesh-controller#357 merge 6d3ffaa210c5mesh/merge-gate: PASS — every machine composes with the change as it did without (3 of 4 compose) (modules: mesh-delivery)mesh/repo-check: PASS — its merge-check.sh passed, each part in its toolchain: merge-check.sh (go), merge-check-typescript.sh (typescript)Delivery plan — builds mesh-delivery → novox; no bus step
Run by the build seat on ace as
build-1792156634253284581(builds --log build-1792156634253284581).