From 15195d0ed1831d3d8ca5f864a8f8a633eebf2997 Mon Sep 17 00:00:00 2001 From: John London Date: Sun, 26 Apr 2026 21:17:24 -0500 Subject: [PATCH] refactor(core): extract QWEN_CODE_API_TIMEOUT_MS into applyTimeoutEnvOverride helper Deduplicates the timeout env override logic that was duplicated in resolveModelConfig() and resolveQwenOAuthConfig() after PR #3629 merged. Co-Authored-By: Claude Opus 4.7 --- .../core/src/models/modelConfigResolver.ts | 61 +++++++++---------- 1 file changed, 29 insertions(+), 32 deletions(-) diff --git a/packages/core/src/models/modelConfigResolver.ts b/packages/core/src/models/modelConfigResolver.ts index 3eb663c83f3..d1c757c15f0 100644 --- a/packages/core/src/models/modelConfigResolver.ts +++ b/packages/core/src/models/modelConfigResolver.ts @@ -247,22 +247,7 @@ export function resolveModelConfig( ); // ---- Env override: QWEN_CODE_API_TIMEOUT_MS ---- - // Precedence: modelProvider > env > settings > default (CLI doesn't set timeout) - const modelProviderSetTimeout = - modelProvider?.generationConfig?.timeout !== undefined; - if (!modelProviderSetTimeout) { - const envTimeout = env['QWEN_CODE_API_TIMEOUT_MS']; - if (envTimeout !== undefined) { - const parsed = Number(envTimeout); - if (Number.isFinite(parsed) && parsed > 0) { - generationConfig.timeout = Math.floor(parsed); - sources['timeout'] = { - kind: 'env', - envKey: 'QWEN_CODE_API_TIMEOUT_MS', - }; - } - } - } + applyTimeoutEnvOverride(generationConfig, sources, env, modelProvider); // Build final config const config: ContentGeneratorConfig = { @@ -343,22 +328,7 @@ function resolveQwenOAuthConfig( ); // ---- Env override: QWEN_CODE_API_TIMEOUT_MS ---- - // Precedence: modelProvider > env > settings > default - const modelProviderSetTimeoutOAuth = - modelProvider?.generationConfig?.timeout !== undefined; - if (!modelProviderSetTimeoutOAuth) { - const envTimeoutOAuth = input.env['QWEN_CODE_API_TIMEOUT_MS']; - if (envTimeoutOAuth !== undefined) { - const parsed = Number(envTimeoutOAuth); - if (Number.isFinite(parsed) && parsed > 0) { - generationConfig.timeout = Math.floor(parsed); - sources['timeout'] = { - kind: 'env', - envKey: 'QWEN_CODE_API_TIMEOUT_MS', - }; - } - } - } + applyTimeoutEnvOverride(generationConfig, sources, input.env, modelProvider); const config: ContentGeneratorConfig = { authType: AuthType.QWEN_OAUTH, @@ -371,6 +341,33 @@ function resolveQwenOAuthConfig( return { config, sources, warnings }; } +/** + * Apply QWEN_CODE_API_TIMEOUT_MS env override to generation config. + * Precedence: modelProvider > env > settings > default. + */ +function applyTimeoutEnvOverride( + generationConfig: Partial, + sources: ConfigSources, + env: Record, + modelProvider?: ModelProviderConfig, +): void { + const modelProviderSetTimeout = + modelProvider?.generationConfig?.timeout !== undefined; + if (!modelProviderSetTimeout) { + const envTimeout = env['QWEN_CODE_API_TIMEOUT_MS']; + if (envTimeout !== undefined) { + const parsed = Number(envTimeout); + if (Number.isFinite(parsed) && parsed > 0) { + generationConfig.timeout = Math.floor(parsed); + sources['timeout'] = { + kind: 'env', + envKey: 'QWEN_CODE_API_TIMEOUT_MS', + }; + } + } + } +} + /** * Resolve generation config fields (samplingParams, timeout, etc.) */