|
@@ -53,6 +53,7 @@ import { iife } from "@/util/iife"
|
|
|
import { DialogConfirm } from "@tui/ui/dialog-confirm"
|
|
import { DialogConfirm } from "@tui/ui/dialog-confirm"
|
|
|
import { DialogPrompt } from "@tui/ui/dialog-prompt"
|
|
import { DialogPrompt } from "@tui/ui/dialog-prompt"
|
|
|
import { DialogTimeline } from "./dialog-timeline"
|
|
import { DialogTimeline } from "./dialog-timeline"
|
|
|
|
|
+import { DialogForkFromTimeline } from "./dialog-fork-from-timeline"
|
|
|
import { DialogSessionRename } from "../../component/dialog-session-rename"
|
|
import { DialogSessionRename } from "../../component/dialog-session-rename"
|
|
|
import { Sidebar } from "./sidebar"
|
|
import { Sidebar } from "./sidebar"
|
|
|
import { LANGUAGE_EXTENSIONS } from "@/lsp/language"
|
|
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",
|
|
title: "Compact session",
|
|
|
value: "session.compact",
|
|
value: "session.compact",
|