mirror of
https://github.com/permissionlesstech/bitchat.git
synced 2026-10-25 07:41:41 +00:00
`publicMessageRelaysAcrossLineTopologyWithinTTLBudget` bounded every frame the mesh delivered, announces included. Announce *admission* is the one decision the manual scheduler does not own: `sendAnnounceNow` asks `announceThrottle.shouldSend(force:now: Date())` (BLEService.swift:2760), so announce volume tracks real elapsed seconds rather than `advanceTime`, and the forced-announce window is only 0.15s. #1651 has since made that harmless here, by draining the mesh to quiet before the baseline is taken: the announce traffic now lands in the baseline instead of in the measured delta. Re-measured on top of it, burning 0.2s of wall clock and changing nothing else: burn baseline total/announce delta total/announce/message none 66 / 22 4 / 0 / 4 0.2s early 80 / 36 4 / 0 / 4 0.2s late 66 / 22 4 / 0 / 4 The burn moves the baseline and leaves the delta alone. So the flake is fixed, and this is not the fix. What is left is legibility. The assertion now names the traffic it bounds, so a later change on the announce path cannot spend the message budget's headroom unnoticed. The message-only cost is 4 and is invariant under the perturbation above, so the budget is 8. Full SimulatedMeshTests suite green (macOS scheme, 8/8). Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>