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