Files
pad/internal/server
xarmian a82bbd6b4f test(server): the rate limit has to be tested where it is BOUND (BUG-2730, codex round 11)
A one-survivor pass on the added tests: the announcer was tested
directly and each handler test injected a single gap, so a handler that
bypassed the limiter entirely and emitted sync_required straight from
`case <-gaps:` passed everything — reopening the exact feedback loop the
limiter exists to prevent. The same CONVE-19 shape as the wrapper: the
component was vouched for, the binding was not.

Both handlers now drive a burst through one connection and assert both
halves of the bound: exactly ONE announcement inside the window, and one
MORE after it. The second leg matters as much as the first — a handler
that discarded the extras rather than latching them would satisfy the
first and be this fix's own defect one layer up.

The cooldown becomes a Server field so the test can narrow it. An
integration test that waited out five real seconds per assertion would
not have been written, which is how the gap got here.
2026-08-23 01:39:18 +00:00
..