From 8cfd73718678d71447a3fb2732fa2cfceb2d0f9c Mon Sep 17 00:00:00 2001 From: manikv12 Date: Fri, 30 Jan 2026 01:29:41 -0600 Subject: [PATCH] fix: preserve user overrides (cost, headers, compat) during model merge Only override capability fields (input, reasoning, contextWindow, maxTokens) from code; spread explicitModel first so user-specific fields like cost, headers, and compat are preserved. --- src/agents/models-config.ts | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/agents/models-config.ts b/src/agents/models-config.ts index 384699b51..6f9cb3a49 100644 --- a/src/agents/models-config.ts +++ b/src/agents/models-config.ts @@ -45,8 +45,14 @@ function mergeProviderModels(implicit: ProviderConfig, explicit: ProviderConfig) const implicitModel = id ? implicitById.get(id) : undefined; if (!implicitModel) return explicitModel; // Merge: code-defined capability fields override stale config values, - // while config-only fields (cost, headers, compat) are preserved. - return { ...explicitModel, ...implicitModel }; + // while user-specific fields (cost, headers, compat) are preserved. + return { + ...explicitModel, + input: implicitModel.input, + reasoning: implicitModel.reasoning, + contextWindow: implicitModel.contextWindow, + maxTokens: implicitModel.maxTokens, + }; }); // Append implicit models whose IDs are not present in the explicit list.