Stands up several mock relays — some alive (seeded), some dead (unreachable
ports) — points the app at all of them, logs in via the fake nip-07 extension,
and asserts the refactor invariants under reconnect churn:
1. grid renders from alive relays
2. subscribes on <= the capped core (not all configured relays)
3. no steady-state REQ storm despite dead relays (was 1000+/s)
4. report subs are batched (one kind-1984 filter with many #e, no per-id)
All four PASS on the current build. This is the realism the single perfect mock
relay lacked — the reason earlier 'fixed' verdicts didn't hold in production.
Co-Authored-By: Claude Opus 4.8 <[email protected]>