From 60a656cfd42ee6cc5c5bd46036a77e0e5865972c Mon Sep 17 00:00:00 2001 From: William <19631981+c0dn@users.noreply.github.com> Date: Sat, 4 Apr 2026 19:58:58 +0800 Subject: [PATCH] feat: publish tui.session.select event when switching sessions via dialog When a session is selected from the session list dialog, navigate via sdk.client.tui.selectSession() instead of route.navigate() directly. This publishes the tui.session.select bus event, which the existing event handler in app.tsx picks up to call route.navigate(). Navigation behaviour is unchanged, but the bus event now fires so plugins can observe session focus changes. The tui.session.select BusEvent, server route (/tui/select-session), and SDK client method all existed but were never called from internal TUI navigation paths. --- .../src/cli/cmd/tui/component/dialog-session-list.tsx | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/packages/opencode/src/cli/cmd/tui/component/dialog-session-list.tsx b/packages/opencode/src/cli/cmd/tui/component/dialog-session-list.tsx index 775969bfcb38..a5456bc76c71 100644 --- a/packages/opencode/src/cli/cmd/tui/component/dialog-session-list.tsx +++ b/packages/opencode/src/cli/cmd/tui/component/dialog-session-list.tsx @@ -74,10 +74,7 @@ export function DialogSessionList() { setToDelete(undefined) }} onSelect={(option) => { - route.navigate({ - type: "session", - sessionID: option.value, - }) + sdk.client.tui.selectSession({ body: { sessionID: option.value } }) dialog.clear() }} keybind={[