Преглед изворни кода

Do not update the providers if the currently configured one is valid (#8751)

Tomás Barreiro пре 6 дана
родитељ
комит
ec879fc549
1 измењених фајлова са 12 додато и 3 уклоњено
  1. 12 3
      src/core/storage/remote-config/utils.ts

+ 12 - 3
src/core/storage/remote-config/utils.ts

@@ -94,7 +94,6 @@ export function transformRemoteConfigToStateShape(remoteConfig: RemoteConfig): P
 	}
 
 	// Map provider settings
-
 	const providers: ApiProvider[] = []
 
 	// Map OpenAiCompatible provider settings
@@ -306,6 +305,15 @@ export async function applyRemoteConfig(
 	stateManager.clearRemoteConfig()
 	telemetryService.removeProvider(REMOTE_CONFIG_OTEL_PROVIDER_ID)
 
+	// If the existing configured provider is valid, don't update it
+	const apiConfiguration = stateManager.getApiConfiguration()
+	if (isProviderValid(apiConfiguration.actModeApiProvider, transformed)) {
+		transformed.actModeApiProvider = apiConfiguration.actModeApiProvider
+	}
+	if (isProviderValid(apiConfiguration.planModeApiProvider, transformed)) {
+		transformed.planModeApiProvider = apiConfiguration.planModeApiProvider
+	}
+
 	// Populate remote config cache with transformed values
 	for (const [key, value] of Object.entries(transformed)) {
 		stateManager.setRemoteConfigField(key as keyof RemoteConfigFields, value)
@@ -334,8 +342,9 @@ export async function applyRemoteConfig(
 	await applyRemoteOTELConfig(transformed, telemetryService)
 }
 
-const isProviderValid = (provider?: ApiProvider) => {
-	const remoteConfiguredProviders = StateManager.get().getRemoteConfigSettings().remoteConfiguredProviders
+const isProviderValid = (provider?: ApiProvider, remoteConfig?: Partial<RemoteConfigFields>) => {
+	const remoteConfiguredProviders =
+		remoteConfig?.remoteConfiguredProviders ?? StateManager.get().getRemoteConfigSettings().remoteConfiguredProviders
 	if (!remoteConfiguredProviders || !remoteConfiguredProviders.length) {
 		return true
 	}