@@ -97,6 +97,30 @@ export const CodeIndexSettings: React.FC<CodeIndexSettingsProps> = ({
9797 }
9898 } , [ codebaseIndexConfig , codebaseIndexModels ] )
9999
100+ /**
101+ * Determines the appropriate model ID when changing providers
102+ */
103+ function getModelIdForProvider (
104+ newProvider : EmbedderProvider ,
105+ currentProvider : EmbedderProvider | undefined ,
106+ currentModelId : string | undefined ,
107+ availableModels : CodebaseIndexModels | undefined ,
108+ ) : string {
109+ if ( newProvider === currentProvider && currentModelId ) {
110+ return currentModelId
111+ }
112+
113+ const models = availableModels ?. [ newProvider ]
114+ const modelIds = models ? Object . keys ( models ) : [ ]
115+
116+ if ( currentModelId && modelIds . includes ( currentModelId ) ) {
117+ return currentModelId
118+ }
119+
120+ const selectedModel = modelIds . length > 0 ? modelIds [ 0 ] : ""
121+ return selectedModel
122+ }
123+
100124 function validateIndexingConfig ( config : CodebaseIndexConfig | undefined , apiConfig : ProviderSettings ) : boolean {
101125 if ( ! config ) return false
102126
@@ -210,15 +234,34 @@ export const CodeIndexSettings: React.FC<CodeIndexSettingsProps> = ({
210234 value = { codebaseIndexConfig ?. codebaseIndexEmbedderProvider || "openai" }
211235 onValueChange = { ( value ) => {
212236 const newProvider = value as EmbedderProvider
213- const models = codebaseIndexModels ?. [ newProvider ]
214- const modelIds = models ? Object . keys ( models ) : [ ]
215- const defaultModelId = modelIds . length > 0 ? modelIds [ 0 ] : "" // Use empty string if no models
237+ const currentProvider = codebaseIndexConfig ?. codebaseIndexEmbedderProvider
238+ const currentModelId = codebaseIndexConfig ?. codebaseIndexEmbedderModelId
239+
240+ console . log ( "[CodeIndexSettings] Provider selection changed:" , {
241+ newProvider,
242+ currentProvider,
243+ currentModelId,
244+ providerChanged : newProvider !== currentProvider ,
245+ } )
246+
247+ const modelIdToUse = getModelIdForProvider (
248+ newProvider ,
249+ currentProvider ,
250+ currentModelId ,
251+ codebaseIndexModels ,
252+ )
253+
254+ console . log ( "[CodeIndexSettings] Setting new config:" , {
255+ provider : newProvider ,
256+ modelId : modelIdToUse ,
257+ modelChanged : currentModelId !== modelIdToUse ,
258+ } )
216259
217260 if ( codebaseIndexConfig ) {
218261 setCachedStateField ( "codebaseIndexConfig" , {
219262 ...codebaseIndexConfig ,
220263 codebaseIndexEmbedderProvider : newProvider ,
221- codebaseIndexEmbedderModelId : defaultModelId ,
264+ codebaseIndexEmbedderModelId : modelIdToUse ,
222265 } )
223266 }
224267 } } >
0 commit comments