From 9e2ca5df2882a962235200adb189d63ba0f58269 Mon Sep 17 00:00:00 2001 From: Harsh Batheja <40922251+harsh-batheja@users.noreply.github.com> Date: Thu, 5 Feb 2026 07:49:12 +0000 Subject: [PATCH] fix: Model selection persists across sessions --- packages/app/src/context/local.tsx | 11 +++++++++++ packages/opencode/src/acp/agent.ts | 5 +++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/packages/app/src/context/local.tsx b/packages/app/src/context/local.tsx index f51bb693092..20ca458cfdc 100644 --- a/packages/app/src/context/local.tsx +++ b/packages/app/src/context/local.tsx @@ -175,6 +175,17 @@ export const { use: useLocal, provider: LocalProvider } = createSimpleContext({ if (currentAgent) setEphemeral("model", currentAgent.name, next) if (model) models.setVisibility(model, true) if (options?.recent && model) models.recent.push(model) + // Persist the model selection to config so child processes inherit it + if (model && !options?.recent) { + sdk.config.set({ + directory: sdk.directory, + config: { + model: `${model.providerID}/${model.modelID}`, + }, + }).catch((error) => { + console.error("Failed to persist model selection to config", error) + }) + } }) }, visible(model: ModelKey) { diff --git a/packages/opencode/src/acp/agent.ts b/packages/opencode/src/acp/agent.ts index cc9a029a045..198ef5b5b89 100644 --- a/packages/opencode/src/acp/agent.ts +++ b/packages/opencode/src/acp/agent.ts @@ -1373,6 +1373,9 @@ export namespace ACP { return undefined }) + // If a model is specified in the config file, use it instead of falling back to defaults + if (specified) return specified + const providers = await sdk.config .providers({ directory }, { throwOnError: true }) .then((x) => x.data?.providers ?? []) @@ -1411,8 +1414,6 @@ export namespace ACP { } } - if (specified) return specified - return { providerID: "opencode", modelID: "big-pickle" } }