From dea6ccf58b8e68148497eb6160394a135c1a50fc Mon Sep 17 00:00:00 2001 From: Matt Silverlock Date: Fri, 2 Jan 2026 13:36:01 -0500 Subject: [PATCH] fix: prevent subagent model changes from persisting to parent --- .../src/cli/cmd/tui/component/prompt/index.tsx | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/packages/opencode/src/cli/cmd/tui/component/prompt/index.tsx b/packages/opencode/src/cli/cmd/tui/component/prompt/index.tsx index 1463c813e8a..08bfef03c84 100644 --- a/packages/opencode/src/cli/cmd/tui/component/prompt/index.tsx +++ b/packages/opencode/src/cli/cmd/tui/component/prompt/index.tsx @@ -130,6 +130,7 @@ export function Prompt(props: PromptProps) { }) // Initialize agent/model/variant from last user message when session changes + // Skip syncing for subagent sessions to prevent model/agent bleed to parent let syncedSessionID: string | undefined createEffect(() => { const sessionID = props.sessionID @@ -140,11 +141,11 @@ export function Prompt(props: PromptProps) { syncedSessionID = sessionID - // Only set agent if it's a primary agent (not a subagent) - const isPrimaryAgent = local.agent.list().some((x) => x.name === msg.agent) - if (msg.agent && isPrimaryAgent) { - local.agent.set(msg.agent) - } + // Don't sync model/agent for subagent sessions (sessions with parentID) + const session = sync.data.session.find((s) => s.id === sessionID) + if (session?.parentID) return + + if (msg.agent) local.agent.set(msg.agent) if (msg.model) local.model.set(msg.model) if (msg.variant) local.model.variant.set(msg.variant) }