fix: raise maxDelayMs default from 60s to 300s (#756) (#773)

Anthropic rate limit reset windows are typically 60-120s. The previous 60s
default, combined with the +1s buffer in extractRetryAfterMs(), meant that
virtually all rate limit retries were immediately abandoned.

300s (5 min) covers the vast majority of rate limit windows and lets the
built-in retry logic work as intended.

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
TÂCHES 2026-03-16 21:03:13 -06:00 committed by GitHub
parent 2ff45b7439
commit 52848d7fd2
2 changed files with 3 additions and 3 deletions

View file

@ -2553,7 +2553,7 @@ export class AgentSession {
if (message.retryAfterMs !== undefined) {
const cap = settings.maxDelayMs > 0 ? settings.maxDelayMs : Infinity;
if (message.retryAfterMs > cap) {
// Server wants us to wait longer than our max — give up immediately
// Server wants us to wait longer than maxDelayMs — give up to let auto-mode handle recovery
this._emit({
type: "auto_retry_end",
success: false,

View file

@ -20,7 +20,7 @@ export interface RetrySettings {
enabled?: boolean; // default: true
maxRetries?: number; // default: 3
baseDelayMs?: number; // default: 2000 (exponential backoff: 2s, 4s, 8s)
maxDelayMs?: number; // default: 60000 (max server-requested delay before failing)
maxDelayMs?: number; // default: 300000 (max server-requested delay before failing)
}
export interface TerminalSettings {
@ -752,7 +752,7 @@ export class SettingsManager {
enabled: this.getRetryEnabled(),
maxRetries: this.settings.retry?.maxRetries ?? 3,
baseDelayMs: this.settings.retry?.baseDelayMs ?? 2000,
maxDelayMs: this.settings.retry?.maxDelayMs ?? 60000,
maxDelayMs: this.settings.retry?.maxDelayMs ?? 300000,
};
}