diff --git a/src/vs/workbench/contrib/chat/common/languageModels.ts b/src/vs/workbench/contrib/chat/common/languageModels.ts index a0dd51069000a..631d6996240a0 100644 --- a/src/vs/workbench/contrib/chat/common/languageModels.ts +++ b/src/vs/workbench/contrib/chat/common/languageModels.ts @@ -877,10 +877,11 @@ export class LanguageModelsService implements ILanguageModelsService { continue; } - // For the default vendor, groups that only have per-model config - // should not trigger a separate model resolution call. + // For vendors without a configuration schema whose models were already + // resolved in the initial (groupless) load, groups only carry per-model + // settings and should not trigger a separate model resolution call. // Instead, apply the per-model config to the already-resolved models. - if (vendor.isDefault && !vendor.configuration) { + if (!vendor.configuration && allModels.length > 0) { if (group.settings) { for (const model of allModels) { const modelConfig = group.settings[model.metadata.id]; @@ -1119,7 +1120,9 @@ export class LanguageModelsService implements ILanguageModelsService { } } else if (Object.keys(updatedConfig).length > 0) { // Only create a new group if there's non-default config - const vendor = this.getVendors().find(v => v.vendor === metadata.vendor); + // Use _vendors directly instead of getVendors() which filters by `when` clause, + // because we need to store config for all vendors regardless of UI visibility. + const vendor = this._vendors.get(metadata.vendor); if (!vendor) { return; }