A group is one batch and one delivery plan, ordered by the module graph and gated by its composed check; unit and integration tests split (issues 977, 895)
#374
Merged
mesh-toolsmerged 14 commits from feat/one-group-one-plan into main2026-10-17 20:11:00 +00:00
Design 47 milestone 3, with mesh-catalog and hq on the same branch name (one delivery group).
Issue 977 (ADR 0401, 0402 §1, 0403, 0418, 0419):
A merge into a branch other than the trunk starts no delivery and is said (issue 889); the release-branch judge is removed from the controller, the wire and the build seat.
A plan's order is drawn per module from the graph and from what each manifest change adds (verb before caller, version skew, engine before controller); no after: line is read; the drawn edges are kept on the plan and gate the next tier; a cycle fails the composed check and a lone pull request's check.
A group's batch is held open for its last member when mesh-delivery says composed_gate, and a controller member and a catalogue member share one batch and one plan; condition group-not-merged after 10 minutes.
A group member's own check runs its repository's check alone (gate layer composed); the composed checked event names every member. mark-ready stays an optional seat verb for one more release.
Issue 895: every test that starts a bus, a store or another process carries //go:build integration (3315 tests before and after); the untagged unit level runs in 2.3 s on the build node and the merge check bounds it at 5 s (1 s is issue 1055).
The first check (build-1792266097505763429) failed only because testdata/store-tests still listed the two release-branch tests part A deleted; 2d24fbb7 removes them.
Not run locally: the integration tests (the merge check runs them). Issue 1049 stays open until a delivery shows a moved module sent from its new repository.
Reviewed-by: review-m3@shanks at 2d24fbb716 (APPROVE, round 2 and the failed-check cycle)
Design 47 milestone 3, with mesh-catalog and hq on the same branch name (one delivery group).
Issue 977 (ADR 0401, 0402 §1, 0403, 0418, 0419):
- A merge into a branch other than the trunk starts no delivery and is said (issue 889); the release-branch judge is removed from the controller, the wire and the build seat.
- A plan's order is drawn per module from the graph and from what each manifest change adds (verb before caller, version skew, engine before controller); no `after:` line is read; the drawn edges are kept on the plan and gate the next tier; a cycle fails the composed check and a lone pull request's check.
- A group's batch is held open for its last member when mesh-delivery says `composed_gate`, and a controller member and a catalogue member share one batch and one plan; condition `group-not-merged` after 10 minutes.
- A group member's own check runs its repository's check alone (gate layer `composed`); the composed `checked` event names every member. `mark-ready` stays an optional seat verb for one more release.
Issue 895: every test that starts a bus, a store or another process carries `//go:build integration` (3315 tests before and after); the untagged unit level runs in 2.3 s on the build node and the merge check bounds it at 5 s (1 s is issue 1055).
The first check (build-1792266097505763429) failed only because testdata/store-tests still listed the two release-branch tests part A deleted; 2d24fbb7 removes them.
Not run locally: the integration tests (the merge check runs them). Issue 1049 stays open until a delivery shows a moved module sent from its new repository.
Reviewed-by: review-m3@shanks at 2d24fbb71611ca803f08671bb7a909e803d510b6 (APPROVE, round 2 and the failed-check cycle)
mesh/repo-check head 9cdc7d6276d2 merged into trunk b77a298a7eee beside mesh-catalog#352@07717974 — fail: THE CHANGE ALTERS ITS OWN CHECK (merge-check.sh):…
Deliverynovox/mesh-controller@2d24fbb71611 — delivered since 2026-10-17T20:20:27Z
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
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
gitea on every machine running it: sent
mesh-delivery on every machine running it: sent
Transitions
2026-10-17 19:50 (new) → proposed (announced): novox/mesh-controller#374's head announced
2026-10-17 19:56 proposed → checked (checked): a verdict names this commit and the trunk's head as its trunk commit
2026-10-17 19:56 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail
2026-10-17 20:12 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 20:12 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 20:20 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@2d24fbb71611` — **delivered** since 2026-10-17T20:20:27Z
**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/one-group-one-plan`: novox/hq@64e357da7d7e, novox/mesh-catalog@0771797431ed, novox/mesh-controller@2d24fbb71611
- 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
- gitea on every machine running it: sent
- mesh-delivery on every machine running it: sent
**Transitions**
- 2026-10-17 19:50 (new) → proposed (announced): novox/mesh-controller#374's head announced
- 2026-10-17 19:56 proposed → checked (checked): a verdict names this commit and the trunk's head as its trunk commit
- 2026-10-17 19:56 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail
- 2026-10-17 20:12 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 20:12 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 20:20 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`.
Reviewed by review-m3@shanks: milestone 3 review round 2 APPROVE: six findings fixed, test split loses and weakens nothing, unit bound 5 s. Marked through mesh-delivery.mark-ready (novox/hq issue 913).
ready at 9cdc7d6276d257315d2e373116d2210752a27600
Reviewed by review-m3@shanks: milestone 3 review round 2 APPROVE: six findings fixed, test split loses and weakens nothing, unit bound 5 s. Marked through mesh-delivery.mark-ready (novox/hq issue 913).
mesh-delivery: not merged. This pull request is marked ready at 9cdc7d6276, and its check failed: every machine composes with the change as it did without (4 of 4 compose) (head 9cdc7d6276 merged into trunk b77a298a7e). A new head, marked ready once reviewed, or a recheck that passes, merges it.
mesh-delivery: **not merged.** This pull request is marked ready at 9cdc7d6276d257315d2e373116d2210752a27600, and its check failed: every machine composes with the change as it did without (4 of 4 compose) (head 9cdc7d6276d2 merged into trunk b77a298a7eee). A new head, marked ready once reviewed, or a recheck that passes, merges it.
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: FAIL — THE CHANGE ALTERS ITS OWN CHECK (merge-check.sh): main's version judged it; the change's judges the pull requests after it merges; its merge-check.sh failed: lease_test.go:78: a: the controller lease (epoch 1) could not be renewed: the renewal could not be made: context deadline exceeded — it is kept: no new act starts after 2026-10-17T19:44:53Z and it is lost at 2026-10-17T19:44:55Z unless a renewal is made first
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
mesh/repo-check head 2d24fbb71611 merged into trunk b77a298a7eee beside mesh-catalog#352@07717974 — pass: THE CHANGE ALTERS ITS OWN CHECK (merge-check.sh):…
Reviewed by review-m3@shanks: failed-check cycle APPROVE: only the two deleted release-branch tests leave the store-tests list; all 137 listed names exist. Marked through mesh-delivery.mark-ready (novox/hq issue 913).
ready at 2d24fbb71611ca803f08671bb7a909e803d510b6
Reviewed by review-m3@shanks: failed-check cycle APPROVE: only the two deleted release-branch tests leave the store-tests list; all 137 listed names exist. Marked through mesh-delivery.mark-ready (novox/hq issue 913).
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 — THE CHANGE ALTERS ITS OWN CHECK (merge-check.sh): main's version judged it; the change's judges the pull requests after it merges; 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
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.
Design 47 milestone 3, with mesh-catalog and hq on the same branch name (one delivery group).
Issue 977 (ADR 0401, 0402 §1, 0403, 0418, 0419):
after:line is read; the drawn edges are kept on the plan and gate the next tier; a cycle fails the composed check and a lone pull request's check.composed_gate, and a controller member and a catalogue member share one batch and one plan; conditiongroup-not-mergedafter 10 minutes.composed); the composedcheckedevent names every member.mark-readystays an optional seat verb for one more release.Issue 895: every test that starts a bus, a store or another process carries
//go:build integration(3315 tests before and after); the untagged unit level runs in 2.3 s on the build node and the merge check bounds it at 5 s (1 s is issue 1055).The first check (build-1792266097505763429) failed only because testdata/store-tests still listed the two release-branch tests part A deleted;
2d24fbb7removes them.Not run locally: the integration tests (the merge check runs them). Issue 1049 stays open until a delivery shows a moved module sent from its new repository.
Reviewed-by: review-m3@shanks at
2d24fbb716(APPROVE, round 2 and the failed-check cycle)Delivery
novox/mesh-controller@2d24fbb71611— delivered since 2026-10-17T20:20:27ZDelivery plan — builds build-agent, mesh-controller → ace, g14, novox, shanks; no bus step
Group
feat/one-group-one-plan: novox/hq@64e357da7d, novox/mesh-catalog@0771797431, novox/mesh-controller@2d24fbb716Machines
Transitions
The commit's note under
refs/notes/mesh-plankeeps every transition:git log --notes=mesh-plan.ready at
9cdc7d6276Reviewed by review-m3@shanks: milestone 3 review round 2 APPROVE: six findings fixed, test split loses and weakens nothing, unit bound 5 s. Marked through mesh-delivery.mark-ready (novox/hq issue 913).
mesh-delivery: not merged. This pull request is marked ready at
9cdc7d6276, and its check failed: every machine composes with the change as it did without (4 of 4 compose) (head9cdc7d6276merged into trunkb77a298a7e). A new head, marked ready once reviewed, or a recheck that passes, merges it.Merge check at
9cdc7d62Judged: head
9cdc7d6276d2merged into trunkb77a298a7eee; read beside it: mesh-catalogc654fc77bc98, mesh-controller-mainb77a298a7eee, mesh-host6469e8238443, mesh-tools7412c5b6c9c5Siblings read beside it: novox/mesh-catalog#352
0771797431edmerged ontof69f84b9e54c(main)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: FAIL — THE CHANGE ALTERS ITS OWN CHECK (merge-check.sh): main's version judged it; the change's judges the pull requests after it merges; its merge-check.sh failed: lease_test.go:78: a: the controller lease (epoch 1) could not be renewed: the renewal could not be made: context deadline exceeded — it is kept: no new act starts after 2026-10-17T19:44:53Z and it is lost at 2026-10-17T19:44:55Z unless a renewal is made firstDelivery plan — builds build-agent, mesh-controller → ace, g14, novox, shanks; no bus step
Run by the build seat on ace as
build-1792266097505763429(builds --log build-1792266097505763429).ready at
2d24fbb716Reviewed by review-m3@shanks: failed-check cycle APPROVE: only the two deleted release-branch tests leave the store-tests list; all 137 listed names exist. Marked through mesh-delivery.mark-ready (novox/hq issue 913).
Merge check at
2d24fbb7Judged: head
2d24fbb71611merged into trunkb77a298a7eee; read beside it: mesh-catalog3e1710fca622, mesh-controller-mainb77a298a7eee, mesh-host6469e8238443, mesh-tools7412c5b6c9c5Siblings read beside it: novox/mesh-catalog#352
0771797431edmerged ontof69f84b9e54c(main)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 — THE CHANGE ALTERS ITS OWN CHECK (merge-check.sh): main's version judged it; the change's judges the pull requests after it merges; its merge-check.sh passedDelivery plan — builds build-agent, mesh-controller → ace, g14, novox, shanks; no bus step
Run by the build seat on ace as
build-1792266627955233859(builds --log build-1792266627955233859).