@@ -103,6 +103,7 @@ type GlobalStateKey =
103103 | "previousModeApiProvider"
104104 | "previousModeModelId"
105105 | "previousModeThinkingBudgetTokens"
106+ | "previousModeVsCodeLmModelSelector"
106107 | "previousModeModelInfo"
107108 | "liteLlmBaseUrl"
108109 | "liteLlmModelId"
@@ -964,6 +965,7 @@ export class ClineProvider implements vscode.WebviewViewProvider {
964965 previousModeApiProvider : newApiProvider ,
965966 previousModeModelId : newModelId ,
966967 previousModeModelInfo : newModelInfo ,
968+ previousModeVsCodeLmModelSelector : newVsCodeLmModelSelector ,
967969 previousModeThinkingBudgetTokens : newThinkingBudgetTokens ,
968970 planActSeparateModelsSetting,
969971 } = await this . getState ( )
@@ -991,7 +993,8 @@ export class ClineProvider implements vscode.WebviewViewProvider {
991993 await this . updateGlobalState ( "previousModeModelInfo" , apiConfiguration . openRouterModelInfo )
992994 break
993995 case "vscode-lm" :
994- await this . updateGlobalState ( "previousModeModelId" , apiConfiguration . vsCodeLmModelSelector )
996+ // Important we don't set modelId to this, as it's an object not string (webview expects model id to be a string)
997+ await this . updateGlobalState ( "previousModeVsCodeLmModelSelector" , apiConfiguration . vsCodeLmModelSelector )
995998 break
996999 case "openai" :
9971000 await this . updateGlobalState ( "previousModeModelId" , apiConfiguration . openAiModelId )
@@ -1012,7 +1015,7 @@ export class ClineProvider implements vscode.WebviewViewProvider {
10121015 }
10131016
10141017 // Restore the model used in previous mode
1015- if ( newApiProvider || newModelId || newThinkingBudgetTokens !== undefined ) {
1018+ if ( newApiProvider || newModelId || newThinkingBudgetTokens !== undefined || newVsCodeLmModelSelector ) {
10161019 await this . updateGlobalState ( "apiProvider" , newApiProvider )
10171020 await this . updateGlobalState ( "thinkingBudgetTokens" , newThinkingBudgetTokens )
10181021 switch ( newApiProvider ) {
@@ -1032,7 +1035,7 @@ export class ClineProvider implements vscode.WebviewViewProvider {
10321035 await this . updateGlobalState ( "openRouterModelInfo" , newModelInfo )
10331036 break
10341037 case "vscode-lm" :
1035- await this . updateGlobalState ( "vsCodeLmModelSelector" , newModelId )
1038+ await this . updateGlobalState ( "vsCodeLmModelSelector" , newVsCodeLmModelSelector )
10361039 break
10371040 case "openai" :
10381041 await this . updateGlobalState ( "openAiModelId" , newModelId )
@@ -2133,6 +2136,7 @@ Here is the project's README to help you get started:\n\n${mcpDetails.readmeCont
21332136 previousModeApiProvider ,
21342137 previousModeModelId ,
21352138 previousModeModelInfo ,
2139+ previousModeVsCodeLmModelSelector ,
21362140 previousModeThinkingBudgetTokens ,
21372141 qwenApiLine ,
21382142 liteLlmApiKey ,
@@ -2196,6 +2200,7 @@ Here is the project's README to help you get started:\n\n${mcpDetails.readmeCont
21962200 this . getGlobalState ( "previousModeApiProvider" ) as Promise < ApiProvider | undefined > ,
21972201 this . getGlobalState ( "previousModeModelId" ) as Promise < string | undefined > ,
21982202 this . getGlobalState ( "previousModeModelInfo" ) as Promise < ModelInfo | undefined > ,
2203+ this . getGlobalState ( "previousModeVsCodeLmModelSelector" ) as Promise < vscode . LanguageModelChatSelector | undefined > ,
21992204 this . getGlobalState ( "previousModeThinkingBudgetTokens" ) as Promise < number | undefined > ,
22002205 this . getGlobalState ( "qwenApiLine" ) as Promise < string | undefined > ,
22012206 this . getSecret ( "liteLlmApiKey" ) as Promise < string | undefined > ,
@@ -2309,6 +2314,7 @@ Here is the project's README to help you get started:\n\n${mcpDetails.readmeCont
23092314 previousModeApiProvider,
23102315 previousModeModelId,
23112316 previousModeModelInfo,
2317+ previousModeVsCodeLmModelSelector,
23122318 previousModeThinkingBudgetTokens,
23132319 mcpMarketplaceEnabled,
23142320 telemetrySetting : telemetrySetting || "unset" ,
0 commit comments