Files
pad/internal/config
xarmian c10f1200c1 test: close the coverage gaps codex round 5 enumerated (BUG-2724, BUG-2726, BUG-2727)
Round 5 asked what has NO instrument, as opposed to what is exercised
incidentally. Six real gaps, each now closed by a test that fails when
the behaviour is reverted (10 mutations applied, 10 caught):

- Config plumbing for PAD_REDIS_NAMESPACE and PAD_SSE_MAX_PER_USER, and
  the per-user default of 50. The parser and the gate each had tests; a
  Load() that never populated either field would have passed both while
  the deployment ran with no namespace and no per-user bound. Same
  knob-versus-wiring split as day-49's batch-id finding.
- The metrics adapter's MAPPING. Both sides of that seam were tested and
  neither proved the wires were not crossed; an adapter that incremented
  the sequence-gap counter on a resume gap would have passed everything
  and sent an incident the wrong way. Each event now fires a different
  number of times so a crossed wire cannot produce the expected totals.
- The REDIS bus's slow-subscriber drop. Only the memory bus's was
  covered, and they are different loops in different files — the Redis
  one being the only one a multi-instance deployment runs.
- Presence renew and deregister failures. They fail in OPPOSITE
  directions, which is why they are counted separately, and neither was
  instrumented.
- events.EventBus.SubscribeIfAllowed's own bounds, which had no
  package-level test at all. BUG-2726 moved the global bound to the
  admission gate, so the handler passes maxGlobal=0 and that branch is
  now unreachable from production — it would have been a branch nobody
  could vouch for. Both bounds are now tested where they live.

Also records what round 5 correctly noticed about the existing SSE limit
tests: they still pass, but for a DIFFERENT reason than before — the
admission gate refuses before the bus is reached. Their names no longer
say what they exercise, so the call site says it instead.

Claude-Session: https://claude.ai/code/session_01JVDBKbgn3Xt7ndW1YoYd8X
2026-08-22 02:38:39 +00:00
..