From ae57dd0cf5ce79681241c81388a230f2edc44923 Mon Sep 17 00:00:00 2001 From: Luke Parker <10430890+Hona@users.noreply.github.com> Date: Mon, 5 Oct 2026 13:58:19 +1000 Subject: [PATCH] fix(app): close the running menu before opening a subagent (#53273) --- .../app/src/session/header/session-running-menu.tsx | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/packages/app/src/session/header/session-running-menu.tsx b/packages/app/src/session/header/session-running-menu.tsx index 915511affd2..361c2c526c3 100644 --- a/packages/app/src/session/header/session-running-menu.tsx +++ b/packages/app/src/session/header/session-running-menu.tsx @@ -5,6 +5,7 @@ import { IconButton } from "@opencode/ui/icon-button" import { Menu } from "@opencode/ui/menu" import { TextShimmer } from "@opencode/ui/text-shimmer" import { createMemo, For, Show } from "solid-js" +import { createStore } from "solid-js/store" import { useLanguage } from "@/runtime/i18n/language" import { useServerSDK } from "@/runtime/server/client" import { useServer } from "@/runtime/server/current" @@ -35,6 +36,7 @@ export function SessionRunningMenu(props: { const openRoute = useOpenSessionRoute() const server = useServer() const sdk = useServerSDK() + const [menu, setMenu] = createStore({ open: false }) const sessionAgent = (id: string | undefined) => (id ? server.ctx.data.session.get(id)?.agent : undefined) // Foreground shells stay out: the timeline already shows them at the bottom. @@ -105,7 +107,7 @@ export function SessionRunningMenu(props: { return ( 0}> - + setMenu("open", open)}> open(item)} + onSelect={() => { + // Close before navigating: the router's transition would hold the close until this + // timeline detaches, and the menu would flash at the viewport origin. + setMenu("open", false) + open(item) + }} onKeyDown={(event) => { if ((event.key !== "Delete" && event.key !== "Backspace") || !stoppable(item)) return