feat(tui): fork slash command for keyboard-friendly session forking (resolves #5599) (#5610)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
This commit is contained in:
Ariane Emory
2025-12-18 10:38:19 -06:00
committed by GitHub
co-authored by github-actions[bot]
parent 4bf882ba81
commit 7437ccd6f4
5 changed files with 82 additions and 1 deletions
@@ -53,6 +53,7 @@ import { iife } from "@/util/iife"
import { DialogConfirm } from "@tui/ui/dialog-confirm"
import { DialogPrompt } from "@tui/ui/dialog-prompt"
import { DialogTimeline } from "./dialog-timeline"
import { DialogForkFromTimeline } from "./dialog-fork-from-timeline"
import { DialogSessionRename } from "../../component/dialog-session-rename"
import { Sidebar } from "./sidebar"
import { LANGUAGE_EXTENSIONS } from "@/lsp/language"
@@ -295,6 +296,25 @@ export function Session() {
))
},
},
{
title: "Fork from message",
value: "session.fork",
keybind: "session_fork",
category: "Session",
onSelect: (dialog) => {
dialog.replace(() => (
<DialogForkFromTimeline
onMove={(messageID) => {
const child = scroll.getChildren().find((child) => {
return child.id === messageID
})
if (child) scroll.scrollBy(child.y - scroll.y - 1)
}}
sessionID={route.sessionID}
/>
))
},
},
{
title: "Compact session",
value: "session.compact",