3d1260d3b2
PR Ready Gate / clear-labels (pull_request) Successful in 2s
CI / test (pull_request) Successful in 18s
CI / review (anthropic--claude-4.6-sonnet, sonnet, SONNET_REVIEW_TOKEN) (pull_request) Successful in 40s
CI / review (gpt-5, gpt, GPT_REVIEW_TOKEN) (pull_request) Successful in 1m22s
CI / review (gpt-5, security, ., rodin/security-patterns, SECURITY_REVIEW.md, SECURITY_REVIEW_TOKEN) (pull_request) Successful in 1m51s
Address review feedback on PR #101: 1. Capture resp.StatusCode and Retry-After header *before* passing resp to handleResponse, making ownership transfer explicit. Previously the caller read resp.StatusCode after handleResponse had closed the body — correct but fragile coupling. 2. Add panic guard ensuring backoff slice length equals maxAttempts-1. Previously the relationship was implicit and could silently break if maxAttempts were changed without updating the default backoff.