58033baba2
The cross-turn stale-call circuit breaker (_check_stale_giveup in agent/chat_completion_helpers.py) raises a RuntimeError when the provider has been unresponsive for N consecutive stale attempts. This error was classified as FailoverReason.unknown (retryable=True, should_fallback=False), causing the retry loop to burn all max_retries against the same dead provider — each retry hitting the circuit breaker instantly with zero network overhead — before fallback was attempted. Add a classification rule (section 7b in classify_api_error) that recognizes the stale-breaker RuntimeError by its signature phrases and classifies it as FailoverReason.timeout with retryable=False, should_fallback=True. This makes the retry loop skip retries and go straight to fallback provider activation on the first hit. Test: test_stale_breaker_runtime_error_triggers_fallback_not_retry