From d24f478361183e84299c806cde9ec7fbab1c1e75 Mon Sep 17 00:00:00 2001 From: gaobo <1269930357@qq.com> Date: Fri, 3 Jul 2026 21:54:38 +0800 Subject: [PATCH] fix(tui): stop left/right arrow propagation in permission and question prompts - Add evt.stopPropagation() to left/right key handlers in PermissionPrompt - Add evt.stopPropagation() to left/right key handlers in QuestionPrompt - Prevents arrow key events from propagating to CommandProvider which would trigger unintended subAgent navigation via session_child_cycle --- packages/opencode/src/cli/cmd/tui/routes/session/permission.tsx | 2 ++ packages/opencode/src/cli/cmd/tui/routes/session/question.tsx | 2 ++ 2 files changed, 4 insertions(+) diff --git a/packages/opencode/src/cli/cmd/tui/routes/session/permission.tsx b/packages/opencode/src/cli/cmd/tui/routes/session/permission.tsx index 61ffa5707..397763968 100644 --- a/packages/opencode/src/cli/cmd/tui/routes/session/permission.tsx +++ b/packages/opencode/src/cli/cmd/tui/routes/session/permission.tsx @@ -575,6 +575,7 @@ function Prompt>(props: { if (evt.name === "left" || evt.name == "h") { evt.preventDefault() + evt.stopPropagation() const idx = keys.indexOf(store.selected) const next = keys[(idx - 1 + keys.length) % keys.length] setStore("selected", next) @@ -582,6 +583,7 @@ function Prompt>(props: { if (evt.name === "right" || evt.name == "l") { evt.preventDefault() + evt.stopPropagation() const idx = keys.indexOf(store.selected) const next = keys[(idx + 1) % keys.length] setStore("selected", next) diff --git a/packages/opencode/src/cli/cmd/tui/routes/session/question.tsx b/packages/opencode/src/cli/cmd/tui/routes/session/question.tsx index 249c27c45..88d0b8106 100644 --- a/packages/opencode/src/cli/cmd/tui/routes/session/question.tsx +++ b/packages/opencode/src/cli/cmd/tui/routes/session/question.tsx @@ -210,11 +210,13 @@ export function QuestionPrompt(props: { request: QuestionRequest }) { if (evt.name === "left" || evt.name === "h") { evt.preventDefault() + evt.stopPropagation() selectTab((store.tab - 1 + tabs()) % tabs()) } if (evt.name === "right" || evt.name === "l") { evt.preventDefault() + evt.stopPropagation() selectTab((store.tab + 1) % tabs()) }