retryableHttp() now retries only 408 (Request Timeout), 429 (Too Many Requests), and 503 (Service Unavailable). 500-and-other-5xx fail immediately so the circuit-breaker registers them as a single failure rather than smearing across retry attempts. Retry-After honoured (numeric + HTTP-date), capped reasonably. Attempt budget bumped to 6 so a burst of 5 transient 503s can recover within ONE circuit-permitted call — the original concern from #311. Note: CircuitBreaker is already applied OUTSIDE the logical Brain operation by the MCP tool layer, not around each HTTP retry. The nesting report was stale at this code shape; the real drift was the retryableHttp() retry set + budget. Pest coverage in CircuitBreakerTest: - Recovered 503 burst → circuit stays closed, no failure registered - Exhausted 503 burst → ONE breaker failure (not five) - 429 + Retry-After 1 → sleeps 1s, no breaker failure - 500 → immediate breaker failure, no retry Co-authored-by: Codex <noreply@openai.com> Closes tasks.lthn.sh/view.php?id=311 |
||
|---|---|---|
| .. | ||
| Feature | ||
| Fixtures | ||
| Unit | ||
| UseCase | ||
| views | ||
| .DS_Store | ||
| Pest.php | ||
| TestCase.php | ||