With many simultaneous games, AI turns start in bursts and exceed the
in-flight cap. That was counted as an AI failure, so after 5 bursts the
breaker paused the AI for 30 s and every AI seat played random moves.
- Only real failures (timeouts, lost connection, malformed/illegal
answers, unexpected errors) count towards the breaker; the in-flight
cap and "overloaded"/"expired" answers from the AI service do not
- AI_MAX_INFLIGHT default 32 -> 64 (>= MAX_ACTIVE_GAMES, matches the AI
service's AI_MAX_QUEUE)
- Test that load shedding keeps the breaker closed
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>