chenbhao commited on
Commit
a67bf89
·
1 Parent(s): 6bb6a3c

fix: after /login opencode freemodel exit then /model can't fetch model list

Browse files
assets/ctx_auto_compose/compact_dream_subagent.png ADDED

Git LFS Details

  • SHA256: 4afa6feea66702364c754d037fdf6285cc0fb0051262fc405b76f9f83b099aee
  • Pointer size: 131 Bytes
  • Size of remote file: 209 kB
src/components/SearchableModelPicker.tsx CHANGED
@@ -103,6 +103,9 @@ export function SearchableModelPicker({
103
  }
104
 
105
  if (provider === 'opencode' && modelOptions.length <= 1) {
 
 
 
106
  pollTimer = setInterval(async () => {
107
  if (!mounted) {
108
  if (pollTimer) clearInterval(pollTimer)
@@ -350,4 +353,4 @@ export function SearchableModelPicker({
350
  )
351
 
352
  return content
353
- }
 
103
  }
104
 
105
  if (provider === 'opencode' && modelOptions.length <= 1) {
106
+ const { fetchOpencodeModels } = await import('../services/api/opencodeClient.js')
107
+ void fetchOpencodeModels()
108
+
109
  pollTimer = setInterval(async () => {
110
  if (!mounted) {
111
  if (pollTimer) clearInterval(pollTimer)
 
353
  )
354
 
355
  return content
356
+ }
src/main.tsx CHANGED
@@ -2928,7 +2928,7 @@ async function run(): Promise<CommanderCommand> {
2928
  tasks: {},
2929
  agentNameRegistry: new Map(),
2930
  verbose: verbose ?? getGlobalConfig().verbose ?? false,
2931
- mainLoopModel: initialMainLoopModel,
2932
  mainLoopModelForSession: null,
2933
  isBriefOnly: initialIsBriefOnly,
2934
  expandedView: getGlobalConfig().showSpinnerTree ? 'teammates' : getGlobalConfig().showExpandedTodos ? 'tasks' : 'none',
 
2928
  tasks: {},
2929
  agentNameRegistry: new Map(),
2930
  verbose: verbose ?? getGlobalConfig().verbose ?? false,
2931
+ mainLoopModel: initialMainLoopModel ?? resolvedInitialModel,
2932
  mainLoopModelForSession: null,
2933
  isBriefOnly: initialIsBriefOnly,
2934
  expandedView: getGlobalConfig().showSpinnerTree ? 'teammates' : getGlobalConfig().showExpandedTodos ? 'tasks' : 'none',
src/setup.ts CHANGED
@@ -390,12 +390,16 @@ export async function setup(
390
  await getRecentActivity()
391
  }
392
 
393
- // Start background fetch of OpenRouter models if configured
394
- // This is non-blocking and runs in the background
395
  const { getConfiguredAuthProvider } = await import('./utils/auth.js')
396
- if (getConfiguredAuthProvider() === 'openrouter') {
 
397
  const { startOpenRouterModelsFetch } = await import('./utils/model/openRouterModels.js')
398
  startOpenRouterModelsFetch()
 
 
 
399
  }
400
 
401
  // If permission mode is set to bypass, verify we're in a safe environment
 
390
  await getRecentActivity()
391
  }
392
 
393
+ // Start background fetch of dynamic provider model lists if configured.
394
+ // This is non-blocking and warms the /model picker before the user opens it.
395
  const { getConfiguredAuthProvider } = await import('./utils/auth.js')
396
+ const configuredAuthProvider = getConfiguredAuthProvider()
397
+ if (configuredAuthProvider === 'openrouter') {
398
  const { startOpenRouterModelsFetch } = await import('./utils/model/openRouterModels.js')
399
  startOpenRouterModelsFetch()
400
+ } else if (configuredAuthProvider === 'opencode') {
401
+ const { fetchOpencodeModels } = await import('./services/api/opencodeClient.js')
402
+ void fetchOpencodeModels()
403
  }
404
 
405
  // If permission mode is set to bypass, verify we're in a safe environment