From 150592e0195342079dc0402ee04dcc06684275bc Mon Sep 17 00:00:00 2001 From: Rohan Godha Date: Thu, 18 Dec 2025 15:56:50 -0500 Subject: [PATCH 1/3] feat: add parent session keybind for subagent navigation --- .../src/cli/cmd/tui/routes/session/header.tsx | 3 +++ .../src/cli/cmd/tui/routes/session/index.tsx | 17 +++++++++++++++++ packages/opencode/src/config/config.ts | 1 + 3 files changed, 21 insertions(+) diff --git a/packages/opencode/src/cli/cmd/tui/routes/session/header.tsx b/packages/opencode/src/cli/cmd/tui/routes/session/header.tsx index bfdbfa51b5e5..098ee83cce8b 100644 --- a/packages/opencode/src/cli/cmd/tui/routes/session/header.tsx +++ b/packages/opencode/src/cli/cmd/tui/routes/session/header.tsx @@ -81,6 +81,9 @@ export function Header() { Subagent session + + Parent {keybind.print("session_parent")} + Prev {keybind.print("session_child_cycle_reverse")} diff --git a/packages/opencode/src/cli/cmd/tui/routes/session/index.tsx b/packages/opencode/src/cli/cmd/tui/routes/session/index.tsx index 2d6f60cc0a63..6c7b1550f455 100644 --- a/packages/opencode/src/cli/cmd/tui/routes/session/index.tsx +++ b/packages/opencode/src/cli/cmd/tui/routes/session/index.tsx @@ -785,6 +785,23 @@ export function Session() { dialog.clear() }, }, + { + title: "Go to parent session", + value: "session.parent", + keybind: "session_parent", + category: "Session", + disabled: true, + onSelect: (dialog) => { + const parentID = session()?.parentID + if (parentID) { + navigate({ + type: "session", + sessionID: parentID, + }) + } + dialog.clear() + }, + }, ]) const revertInfo = createMemo(() => session()?.revert) diff --git a/packages/opencode/src/config/config.ts b/packages/opencode/src/config/config.ts index a01cc832a097..d11e02a225a8 100644 --- a/packages/opencode/src/config/config.ts +++ b/packages/opencode/src/config/config.ts @@ -560,6 +560,7 @@ export namespace Config { history_next: z.string().optional().default("down").describe("Next history item"), session_child_cycle: z.string().optional().default("right").describe("Next child session"), session_child_cycle_reverse: z.string().optional().default("left").describe("Previous child session"), + session_parent: z.string().optional().default("up").describe("Go to parent session"), terminal_suspend: z.string().optional().default("ctrl+z").describe("Suspend terminal"), terminal_title_toggle: z.string().optional().default("none").describe("Toggle terminal title"), }) From 2b12e4cbd823cd16961b782acf786578021bd1b1 Mon Sep 17 00:00:00 2001 From: Rohan Godha Date: Thu, 18 Dec 2025 16:04:32 -0500 Subject: [PATCH 2/3] regenerate sdk --- packages/sdk/js/src/v2/gen/types.gen.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/sdk/js/src/v2/gen/types.gen.ts b/packages/sdk/js/src/v2/gen/types.gen.ts index c96530737a85..c595291722c0 100644 --- a/packages/sdk/js/src/v2/gen/types.gen.ts +++ b/packages/sdk/js/src/v2/gen/types.gen.ts @@ -1114,6 +1114,10 @@ export type KeybindsConfig = { * Previous child session */ session_child_cycle_reverse?: string + /** + * Go to parent session + */ + session_parent?: string /** * Suspend terminal */ From 51109e9e3a4761273a4201627461740b2586de91 Mon Sep 17 00:00:00 2001 From: Rohan Godha Date: Thu, 18 Dec 2025 17:29:27 -0500 Subject: [PATCH 3/3] run generate --- packages/plugin/package.json | 2 +- packages/sdk/js/package.json | 2 +- packages/sdk/openapi.json | 5 +++++ 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/packages/plugin/package.json b/packages/plugin/package.json index aad2a6ef5273..a5a4d38b464b 100644 --- a/packages/plugin/package.json +++ b/packages/plugin/package.json @@ -24,4 +24,4 @@ "typescript": "catalog:", "@typescript/native-preview": "catalog:" } -} \ No newline at end of file +} diff --git a/packages/sdk/js/package.json b/packages/sdk/js/package.json index f1de8914a731..aaa3a7af3f4f 100644 --- a/packages/sdk/js/package.json +++ b/packages/sdk/js/package.json @@ -29,4 +29,4 @@ "publishConfig": { "directory": "dist" } -} \ No newline at end of file +} diff --git a/packages/sdk/openapi.json b/packages/sdk/openapi.json index 09c7ea8e959e..0fed16e35309 100644 --- a/packages/sdk/openapi.json +++ b/packages/sdk/openapi.json @@ -7417,6 +7417,11 @@ "default": "left", "type": "string" }, + "session_parent": { + "description": "Go to parent session", + "default": "up", + "type": "string" + }, "terminal_suspend": { "description": "Suspend terminal", "default": "ctrl+z",