From dd16aa0602c4d67060923c076e54acc4f1543ad7 Mon Sep 17 00:00:00 2001 From: Bryan Morgan Date: Sun, 22 Feb 2026 10:05:38 -0500 Subject: [PATCH] feat(core): enable retryFetchErrors by default Transient "fetch failed" network errors are common in non-interactive contexts; the retry infrastructure exists but was off by default. --- packages/cli/src/config/settingsSchema.ts | 2 +- packages/core/src/config/config.ts | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/packages/cli/src/config/settingsSchema.ts b/packages/cli/src/config/settingsSchema.ts index f0e092b45b..3328e0ad7a 100644 --- a/packages/cli/src/config/settingsSchema.ts +++ b/packages/cli/src/config/settingsSchema.ts @@ -302,7 +302,7 @@ const SETTINGS_SCHEMA = { label: 'Retry Fetch Errors', category: 'General', requiresRestart: false, - default: false, + default: true, description: 'Retry on "exception TypeError: fetch failed sending request" errors.', showInDialog: false, diff --git a/packages/core/src/config/config.ts b/packages/core/src/config/config.ts index 4944a25b9b..deeb914ea7 100644 --- a/packages/core/src/config/config.ts +++ b/packages/core/src/config/config.ts @@ -852,8 +852,9 @@ export class Config { this.continueOnFailedApiCall = params.continueOnFailedApiCall ?? true; this.enableShellOutputEfficiency = params.enableShellOutputEfficiency ?? true; + const defaultShellTimeout = this.interactive ? 300 : 600; // 5 min interactive, 10 min non-interactive this.shellToolInactivityTimeout = - (params.shellToolInactivityTimeout ?? 300) * 1000; // 5 minutes + (params.shellToolInactivityTimeout ?? defaultShellTimeout) * 1000; this.extensionManagement = params.extensionManagement ?? true; this.enableExtensionReloading = params.enableExtensionReloading ?? false; this.storage = new Storage(this.targetDir, this.sessionId); @@ -877,7 +878,7 @@ export class Config { this.outputSettings = { format: params.output?.format ?? OutputFormat.TEXT, }; - this.retryFetchErrors = params.retryFetchErrors ?? false; + this.retryFetchErrors = params.retryFetchErrors ?? true; this.disableYoloMode = params.disableYoloMode ?? false; this.rawOutput = params.rawOutput ?? false; this.acceptRawOutputRisk = params.acceptRawOutputRisk ?? false;