Single-client end-to-end Bot lifecycle: InitNetwork → ack, InitBattle → ack (no Matched), Loaded → silent, Swap → SwapResponse + Ready, two TurnEnd cycles each producing a single Judge frame back to sender, Retire → BattleFinish. Pending battle evicted at session start. Closes Phase 3 — battle-node v2's three-phase migration (Scripted → PvP → Bot) is now complete. Test budget: 884 → 931 (+47 across Phase 3). Next: matching-queue API rewrite + real rank progression, as separate specs. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
29 KiB
29 KiB