From ab33f015ecf294982855a3d4c68742d9ee71b970 Mon Sep 17 00:00:00 2001 From: jochen Date: Thu, 22 Oct 2026 18:37:31 +0200 Subject: [PATCH] Say again what the controller keeps at every push, so a word refused before its grant is kept once a push carries it (issue 1790, D1) --- cmd/mesh-controller/push.go | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/cmd/mesh-controller/push.go b/cmd/mesh-controller/push.go index 510f650a..2769c902 100644 --- a/cmd/mesh-controller/push.go +++ b/cmd/mesh-controller/push.go @@ -1490,6 +1490,13 @@ func issueMemberships(ctx context.Context, open *stores, server *link.Server, se if reheard > 0 { fmt.Printf(" issued %d membership(s) again for what they hear of a module's stream\n", reheard) } + // **And says again what it keeps** (novox/hq ADR 0495 clause 2, issue 1790): its word at start is refused until a push + // carries its grant; kept only when it changed, so saying it at every push changes nothing else. + if js := servingBus.Load(); js != nil { + if err := announceOwnStates(ctx, js); err != nil { + fmt.Printf(" states: %v\n", err) + } + } if len(refused) > 0 { // Returned, never passed over (novox/hq issue 249): the declarations of the machines they are // for are not sent, and the rollout that asked is tried again rather than waiting for a push.