@@ -5,7 +5,7 @@ import type { ModelInfo } from "@roo-code/types"
55import { ApiHandlerOptions , RouterName , ModelRecord } from "../../shared/api"
66
77import { BaseProvider } from "./base-provider"
8- import { getModels } from "./fetchers/modelCache"
8+ import { getModels , getModelsFromCache } from "./fetchers/modelCache"
99
1010import { DEFAULT_HEADERS } from "./constants"
1111
@@ -63,9 +63,22 @@ export abstract class RouterProvider extends BaseProvider {
6363 override getModel ( ) : { id : string ; info : ModelInfo } {
6464 const id = this . modelId ?? this . defaultModelId
6565
66- return this . models [ id ]
67- ? { id, info : this . models [ id ] }
68- : { id : this . defaultModelId , info : this . defaultModelInfo }
66+ // First check instance models (populated by fetchModel)
67+ if ( this . models [ id ] ) {
68+ return { id, info : this . models [ id ] }
69+ }
70+
71+ // Fall back to global cache (synchronous disk/memory cache)
72+ // This ensures models are available before fetchModel() is called
73+ const cachedModels = getModelsFromCache ( this . name )
74+ if ( cachedModels ?. [ id ] ) {
75+ // Also populate instance models for future calls
76+ this . models = cachedModels
77+ return { id, info : cachedModels [ id ] }
78+ }
79+
80+ // Last resort: return default model
81+ return { id : this . defaultModelId , info : this . defaultModelInfo }
6982 }
7083
7184 protected supportsTemperature ( modelId : string ) : boolean {
0 commit comments