@@ -40,6 +40,7 @@ import {
4040 CodeActionProvider ,
4141} from "./activate"
4242import { initializeI18n } from "./i18n"
43+ import { flushModels , getModels } from "./api/providers/fetchers/modelCache"
4344
4445/**
4546 * Built using https://github.com/microsoft/vscode-webview-ui-toolkit
@@ -141,24 +142,32 @@ export async function activate(context: vscode.ExtensionContext) {
141142 }
142143 }
143144
144- // Flush and reload Roo models cache on auth state change to ensure fresh token is used
145- try {
146- const { flushModels, getModels } = await import ( "./api/providers/fetchers/modelCache" )
147- await flushModels ( "roo" )
148-
149- // Reload models with current auth token
150- const sessionToken = cloudService ?. authService ?. getSessionToken ( )
151- await getModels ( {
152- provider : "roo" ,
153- baseUrl : process . env . ROO_CODE_PROVIDER_URL ?? "https://api.roocode.com/proxy" ,
154- apiKey : sessionToken ,
155- } )
156-
157- cloudLogger ( `[authStateChangedHandler] Reloaded Roo models cache for state: ${ data . state } ` )
158- } catch ( error ) {
159- cloudLogger (
160- `[authStateChangedHandler] Failed to reload Roo models cache: ${ error instanceof Error ? error . message : String ( error ) } ` ,
161- )
145+ // Handle Roo models cache based on auth state
146+ const handleRooModelsCache = async ( ) => {
147+ try {
148+ await flushModels ( "roo" )
149+
150+ if ( data . state === "active-session" ) {
151+ // Reload models with the new auth token
152+ const sessionToken = cloudService ?. authService ?. getSessionToken ( )
153+ await getModels ( {
154+ provider : "roo" ,
155+ baseUrl : process . env . ROO_CODE_PROVIDER_URL ?? "https://api.roocode.com/proxy" ,
156+ apiKey : sessionToken ,
157+ } )
158+ cloudLogger ( `[authStateChangedHandler] Reloaded Roo models cache for active session` )
159+ } else {
160+ cloudLogger ( `[authStateChangedHandler] Flushed Roo models cache on logout` )
161+ }
162+ } catch ( error ) {
163+ cloudLogger (
164+ `[authStateChangedHandler] Failed to handle Roo models cache: ${ error instanceof Error ? error . message : String ( error ) } ` ,
165+ )
166+ }
167+ }
168+
169+ if ( data . state === "active-session" || data . state === "logged-out" ) {
170+ await handleRooModelsCache ( )
162171 }
163172 }
164173
0 commit comments