From 82a50e72d8fd69bbd87add400772c78433b6c459 Mon Sep 17 00:00:00 2001 From: Dax Raad Date: Tue, 21 Oct 2025 11:15:01 -0400 Subject: [PATCH] tui: fix model validation to prevent invalid provider/model combinations --- .../opencode/src/cli/cmd/tui/context/local.tsx | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/packages/opencode/src/cli/cmd/tui/context/local.tsx b/packages/opencode/src/cli/cmd/tui/context/local.tsx index ff9ef3552..6251d32f2 100644 --- a/packages/opencode/src/cli/cmd/tui/context/local.tsx +++ b/packages/opencode/src/cli/cmd/tui/context/local.tsx @@ -92,17 +92,31 @@ export const { use: useLocal, provider: LocalProvider } = createSimpleContext({ }) const fallback = createMemo(() => { + function isValid(providerID: string, modelID: string) { + const provider = sync.data.provider.find((x) => x.id === providerID) + if (!provider) return false + const model = provider.models[modelID] + if (!model) return false + return true + } + if (sync.data.config.model) { const [providerID, modelID] = sync.data.config.model.split("/") - if (sync.data.provider.find((x) => x.id === providerID)?.models[modelID]) { + if (isValid(providerID, modelID)) { return { providerID, modelID, } } } - if (store.recent.length) return store.recent[0] + + for (const item of store.recent) { + if (isValid(item.providerID, item.modelID)) { + return item + } + } const provider = sync.data.provider[0] + console.log(provider) const model = Object.values(provider.models)[0] return { providerID: provider.id,