Auto-retry on transient provider errors (overloaded, rate limit, 5xx)

- Add retry logic with exponential backoff (2s, 4s, 8s) in AgentSession
- Disable Anthropic SDK built-in retries (maxRetries: 0) to allow app-level handling
- TUI shows retry status with Escape to cancel
- RPC mode: add set_auto_retry, abort_retry commands and auto_retry_start/end events
- Configurable via settings.json: retry.enabled, retry.maxRetries, retry.baseDelayMs
- Exclude context overflow errors from retry (handled by compaction)

fixes #157
This commit is contained in:
Mario Zechner 2025-12-10 23:36:46 +01:00
parent 79f5c6d22e
commit bb445d24f1
11 changed files with 379 additions and 3 deletions

View file

@ -295,6 +295,7 @@ function createClient(
baseURL: model.baseUrl,
defaultHeaders,
dangerouslyAllowBrowser: true,
maxRetries: 0, // Disable SDK retries, handled by coding-agent
});
return { client, isOAuthToken: true };
@ -311,6 +312,7 @@ function createClient(
baseURL: model.baseUrl,
dangerouslyAllowBrowser: true,
defaultHeaders,
maxRetries: 0, // Disable SDK retries, handled by coding-agent
});
return { client, isOAuthToken: false };