diff options
| author | Rohan Godha <[email protected]> | 2025-12-22 15:50:45 -0500 |
|---|---|---|
| committer | GitHub <[email protected]> | 2025-12-22 14:50:45 -0600 |
| commit | 25f1643e8e5481b82ee6e770e97877ff86369b95 (patch) | |
| tree | eb0f2432f198850bd390d388270c6078d19ee3af | |
| parent | e015bea4627e401d646ebde89ea930befcc54164 (diff) | |
| download | opencode-25f1643e8e5481b82ee6e770e97877ff86369b95.tar.gz opencode-25f1643e8e5481b82ee6e770e97877ff86369b95.zip | |
feat(tui): go to parent keybind for subagents (#5762)
| -rw-r--r-- | packages/opencode/src/cli/cmd/tui/routes/session/header.tsx | 3 | ||||
| -rw-r--r-- | packages/opencode/src/cli/cmd/tui/routes/session/index.tsx | 17 | ||||
| -rw-r--r-- | packages/opencode/src/config/config.ts | 1 | ||||
| -rw-r--r-- | packages/sdk/js/src/v2/gen/types.gen.ts | 4 | ||||
| -rw-r--r-- | packages/sdk/openapi.json | 5 |
5 files changed, 30 insertions, 0 deletions
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 bfdbfa51b..098ee83cc 100644 --- a/packages/opencode/src/cli/cmd/tui/routes/session/header.tsx +++ b/packages/opencode/src/cli/cmd/tui/routes/session/header.tsx @@ -82,6 +82,9 @@ export function Header() { <b>Subagent session</b> </text> <text fg={theme.text}> + Parent <span style={{ fg: theme.textMuted }}>{keybind.print("session_parent")}</span> + </text> + <text fg={theme.text}> Prev <span style={{ fg: theme.textMuted }}>{keybind.print("session_child_cycle_reverse")}</span> </text> <text fg={theme.text}> 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 3b1c58966..029a012f8 100644 --- a/packages/opencode/src/cli/cmd/tui/routes/session/index.tsx +++ b/packages/opencode/src/cli/cmd/tui/routes/session/index.tsx @@ -870,6 +870,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 daf81f434..6520fb3ab 100644 --- a/packages/opencode/src/config/config.ts +++ b/packages/opencode/src/config/config.ts @@ -562,6 +562,7 @@ export namespace Config { history_next: z.string().optional().default("down").describe("Next history item"), session_child_cycle: z.string().optional().default("<leader>right").describe("Next child session"), session_child_cycle_reverse: z.string().optional().default("<leader>left").describe("Previous child session"), + session_parent: z.string().optional().default("<leader>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"), }) diff --git a/packages/sdk/js/src/v2/gen/types.gen.ts b/packages/sdk/js/src/v2/gen/types.gen.ts index e3249848c..4eeeceb55 100644 --- a/packages/sdk/js/src/v2/gen/types.gen.ts +++ b/packages/sdk/js/src/v2/gen/types.gen.ts @@ -1123,6 +1123,10 @@ export type KeybindsConfig = { */ session_child_cycle_reverse?: string /** + * Go to parent session + */ + session_parent?: string + /** * Suspend terminal */ terminal_suspend?: string diff --git a/packages/sdk/openapi.json b/packages/sdk/openapi.json index a1576668a..455bd51f8 100644 --- a/packages/sdk/openapi.json +++ b/packages/sdk/openapi.json @@ -7598,6 +7598,11 @@ "default": "<leader>left", "type": "string" }, + "session_parent": { + "description": "Go to parent session", + "default": "<leader>up", + "type": "string" + }, "terminal_suspend": { "description": "Suspend terminal", "default": "ctrl+z", |
