Issue 1260. sayPlanMoved started go publishPlanMoved(..., p) with an inventory.Plan whose maps and pointers the walk goes on writing (settleFromRecords, release_plan.go:2485-2486): a data race the merge check's race detector found in mesh-controller #396's check (TestAPlanGoesOnWithoutAMachineAwayWhenItsTierIsSent). It blocks #396 (issue 1247) and may fail any mesh-controller pull request by chance.
Fix: copyOfPlan takes a JSON round trip of the plan before the goroutine starts (carrying WalkSaid, json:"-"), so the announcement shares nothing with the walk. 1260/AC1 (race-free under -race; the body is the plan as at the call, after 2000 changes to the walk's plan) failed first without the copy; 1260/AC2 (an unchanged plan's body is as before) failed first when a field was lost. The review's run (build-1792420991920664008) passed in 4m28s.
Opened at once, its merge check the one run of the suite (the operator, 2026-10-19 16:50).
Issue 1260. sayPlanMoved started `go publishPlanMoved(..., p)` with an inventory.Plan whose maps and pointers the walk goes on writing (settleFromRecords, release_plan.go:2485-2486): a data race the merge check's race detector found in mesh-controller #396's check (TestAPlanGoesOnWithoutAMachineAwayWhenItsTierIsSent). It blocks #396 (issue 1247) and may fail any mesh-controller pull request by chance.
Fix: copyOfPlan takes a JSON round trip of the plan before the goroutine starts (carrying WalkSaid, json:"-"), so the announcement shares nothing with the walk. 1260/AC1 (race-free under -race; the body is the plan as at the call, after 2000 changes to the walk's plan) failed first without the copy; 1260/AC2 (an unchanged plan's body is as before) failed first when a field was lost. The review's run (build-1792420991920664008) passed in 4m28s.
Opened at once, its merge check the one run of the suite (the operator, 2026-10-19 16:50).
Reviewed-by: review-1260@shanks at 14f405ece5088b300cf612d5b562efa62b6e0c9d
mesh/merge-gate head 14f405ece508 merged into trunk 5c807808e88a — pass: builds mesh-controller → novox; no bus step; every machine composes with the chang…
Deliverynovox/mesh-controller@14f405ece508 — delivered since 2026-10-19T14:54:38Z
Delivery plan — builds mesh-controller → novox; no bus step
tier 0: mesh-controller
novox: receives mesh-controller
Machines
mesh-controller on every machine running it: sent
Transitions
2026-10-19 14:45 (new) → proposed (announced): novox/mesh-controller#397's head announced
2026-10-19 14:51 proposed → checked (checked): a verdict names this commit and the trunk's head as its trunk commit
2026-10-19 14:51 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail
2026-10-19 14:52 ready → published (merged): on the trunk its modules follow: merged there, and its walk opened — or nothing for a walk to move
2026-10-19 14:52 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-19 14:54 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@14f405ece508` — **delivered** since 2026-10-19T14:54:38Z
**Delivery plan** — builds mesh-controller → novox; no bus step
- tier 0: mesh-controller
- novox: receives mesh-controller
**Machines**
- mesh-controller on every machine running it: sent
**Transitions**
- 2026-10-19 14:45 (new) → proposed (announced): novox/mesh-controller#397's head announced
- 2026-10-19 14:51 proposed → checked (checked): a verdict names this commit and the trunk's head as its trunk commit
- 2026-10-19 14:51 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail
- 2026-10-19 14:52 ready → published (merged): on the trunk its modules follow: merged there, and its walk opened — or nothing for a walk to move
- 2026-10-19 14:52 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-19 14:54 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 1260. sayPlanMoved started
go publishPlanMoved(..., p)with an inventory.Plan whose maps and pointers the walk goes on writing (settleFromRecords, release_plan.go:2485-2486): a data race the merge check's race detector found in mesh-controller #396's check (TestAPlanGoesOnWithoutAMachineAwayWhenItsTierIsSent). It blocks #396 (issue 1247) and may fail any mesh-controller pull request by chance.Fix: copyOfPlan takes a JSON round trip of the plan before the goroutine starts (carrying WalkSaid, json:"-"), so the announcement shares nothing with the walk. 1260/AC1 (race-free under -race; the body is the plan as at the call, after 2000 changes to the walk's plan) failed first without the copy; 1260/AC2 (an unchanged plan's body is as before) failed first when a field was lost. The review's run (build-1792420991920664008) passed in 4m28s.
Opened at once, its merge check the one run of the suite (the operator, 2026-10-19 16:50).
Reviewed-by: review-1260@shanks at
14f405ece5Delivery
novox/mesh-controller@14f405ece508— delivered since 2026-10-19T14:54:38ZDelivery plan — builds mesh-controller → novox; no bus step
Machines
Transitions
The commit's note under
refs/notes/mesh-plankeeps every transition:git log --notes=mesh-plan.Merge check at
14f405ecJudged: head
14f405ece508merged into trunk5c807808e88a; read beside it: mesh-cataloge8c3448797c7, mesh-controller-main5c807808e88a, mesh-host2474bf28330f, mesh-tools7412c5b6c9c5mesh/merge-gate: PASS — every machine composes with the change as it did without (4 of 4 compose) (modules: mesh-controller)mesh/repo-check: PASS — its merge-check.sh passedDelivery plan — builds mesh-controller → novox; no bus step
Run by the build seat on ace as
build-1792421143446490783(builds --log build-1792421143446490783).