messenger: say what waits in its burst window, and stop reporting a state failure that has passed (issue 1507) #536

Merged
mesh-tools merged 3 commits from fix/1507-config-ask-silent into main 2026-10-28 09:18:00 +00:00
Member

Issue 1507's symptom was met again on 2026-10-28 08:50Z, or seemed to be: three mesh-config asks were taken by the router and, for about 30 s, neither messenger_recent nor operator-channel.history showed a send or a refusal. They were sent at 08:50:33Z, the end of the first ask's burst window (a non-urgent ask waits its window even alone). Notes 5 on issue 1507.

  • History (messenger_recent, operator-channel.history) now lists what waits in the outbox per channel: its key, when it was held and when its window ends. Keys and labels only, the same fields Sent already shows.
  • holder.go clears the stored state error once a later state write succeeds, so messenger_status no longer says "held in memory only" from one failure of 2026-10-27 07:28Z.

Quick vs thorough: quick, chosen. The thorough fix (an ask no channel sends is said loudly after 5 minutes, in the ask's own record and to the operator) is drafted and noted on issue 1507; the burst window is not a loss, so the visible waiting list removes today's false alarm.
Tests: one Test function added (TestTheHistorySaysAnAskWaitingForItsBurstWindow) and one assertion in TestAChannelThatCannotSendSaysSoAndIsTriedAgain; each fails without its change; 199 Test functions in the module, within budget. gofmt, vet, -tags integration, go test -race pass.

Reviewed-by: rev-1507@shanks at d871258f8b

Issue 1507's symptom was met again on 2026-10-28 08:50Z, or seemed to be: three mesh-config asks were taken by the router and, for about 30 s, neither messenger_recent nor operator-channel.history showed a send or a refusal. They were sent at 08:50:33Z, the end of the first ask's burst window (a non-urgent ask waits its window even alone). Notes 5 on issue 1507. - History (messenger_recent, operator-channel.history) now lists what waits in the outbox per channel: its key, when it was held and when its window ends. Keys and labels only, the same fields Sent already shows. - holder.go clears the stored state error once a later state write succeeds, so messenger_status no longer says "held in memory only" from one failure of 2026-10-27 07:28Z. Quick vs thorough: quick, chosen. The thorough fix (an ask no channel sends is said loudly after 5 minutes, in the ask's own record and to the operator) is drafted and noted on issue 1507; the burst window is not a loss, so the visible waiting list removes today's false alarm. Tests: one Test function added (TestTheHistorySaysAnAskWaitingForItsBurstWindow) and one assertion in TestAChannelThatCannotSendSaysSoAndIsTriedAgain; each fails without its change; 199 Test functions in the module, within budget. gofmt, vet, -tags integration, go test -race pass. Reviewed-by: rev-1507@shanks at d871258f8b00cde6a1c42e68f5c6132943298cce
mesh-tools added 3 commits 2026-10-28 09:09:07 +00:00
Author
Member

Delivery novox/mesh-catalog@d871258f8b00 — merged since 2026-10-28T09:18:01Z

Source — source.main moved to novox/mesh-catalog@1a9570f5e9. Whether it reached the machines is mesh-delivery-view's, derived from source.main, the wants and the haves.

Transitions

  • 2026-10-28 09:09 (new) → proposed (announced): novox/mesh-catalog#536's head announced
  • 2026-10-28 09:09 proposed → ready (accepted): a verdict names this commit and the trunk's head as its trunk commit, the gate passed or warned, and the repository's own check did not fail; or the check gates no merge (check-gates-merge false)
  • 2026-10-28 09:18 ready → merged (merged): on the trunk its modules follow: merged there

The commit's note under refs/notes/mesh-plan keeps every transition of this change up to its merge: git log --notes=mesh-plan.

<!-- mesh-delivery:view --> **Delivery** `novox/mesh-catalog@d871258f8b00` — **merged** since 2026-10-28T09:18:01Z **Source** — source.main moved to novox/mesh-catalog@1a9570f5e92f. Whether it reached the machines is `mesh-delivery-view`'s, derived from `source.main`, the wants and the haves. **Transitions** - 2026-10-28 09:09 (new) → proposed (announced): novox/mesh-catalog#536's head announced - 2026-10-28 09:09 proposed → ready (accepted): a verdict names this commit and the trunk's head as its trunk commit, the gate passed or warned, and the repository's own check did not fail; or the check gates no merge (check-gates-merge false) - 2026-10-28 09:18 ready → merged (merged): on the trunk its modules follow: merged there The commit's note under `refs/notes/mesh-plan` keeps every transition of this change up to its merge: `git log --notes=mesh-plan`.
mesh-tools merged commit 1a9570f5e9 into main 2026-10-28 09:18:00 +00:00
mesh-tools deleted branch fix/1507-config-ask-silent 2026-10-28 09:18:00 +00:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: novox/mesh-catalog#536