From 704b21b3c547b65cf4a1ac3e0909ab90c79d171c Mon Sep 17 00:00:00 2001 From: jochen Date: Wed, 14 Oct 2026 19:36:28 +0200 Subject: [PATCH] =?UTF-8?q?Carry=20the=20new=20controller's=20user=20list?= =?UTF-8?q?=20to=20the=20bus=20when=20its=20walk=20ends,=20as=20the=20gate?= =?UTF-8?q?'s=20pass=20did=20(hq=20ADR=200236=20=C2=A734,=20ADR=200360)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd/mesh-controller/release_plan.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/cmd/mesh-controller/release_plan.go b/cmd/mesh-controller/release_plan.go index 8378c1f7..63430ce0 100644 --- a/cmd/mesh-controller/release_plan.go +++ b/cmd/mesh-controller/release_plan.go @@ -15,6 +15,7 @@ import ( "github.com/nats-io/nats.go" "github.com/novox/mesh-controller/internal/builder" + "github.com/novox/mesh-controller/internal/catalogue" "github.com/novox/mesh-controller/internal/inventory" "github.com/novox/mesh-controller/internal/link" ) @@ -1109,6 +1110,11 @@ func advanceOnce(ctx context.Context, open *stores, p *inventory.Plan, strings.Join(silent, ", "))) } end = strings.Join(said, "; ") + // **The new controller's user list follows its walk** (ADR 0236 ยง34, read without the gate since ADR 0360): + // once a walk that moved the controller ends, the bus's machine is sent the list it composes, if behind. + if s := p.Modules[catalogue.ControllerSeatName]; s != nil && s.SentAt != nil && s.Gate == nil && !noMove(s) { + carryUserList(ctx, open, p) + } } p.Tier++ p.State = inventory.PlanBuilding