- Verify 1.13c Bnclient.dll (0x6ff2ed41: cmp ecx, 0x2bf20) sends 4-byte
SID_NULL (FF 00 04 00) every 180,000 ms (3 minutes) once the BNCS
handshake starts until the BNCS socket closes, and confirm D2MCPClient.dll
has no client-side MCP keepalive packet.
- Start a 180,000 ms (BNCS_KEEPALIVE_INTERVAL_MS) periodic SID_NULL timer in
BncsSession.handshake() and cancel it on close() or stream disconnect.
- Echo SID_NULL in FakeRealm wireBncs (matching PvPGN bnetd _client_pingreq)
and add FakeClock unit tests for 180s SID_NULL keepalive and >6m idle
persistence on character select and lobby screens.
- Add lobby-idle subcommand to tools/d2-bot.ts for live WSS idle verification.
Fixes#541