diff --git a/packages/app/src/pages/session/message-timeline.tsx b/packages/app/src/pages/session/message-timeline.tsx index 8215f31bade..ee5bc0db54d 100644 --- a/packages/app/src/pages/session/message-timeline.tsx +++ b/packages/app/src/pages/session/message-timeline.tsx @@ -17,6 +17,7 @@ import { shouldMarkBoundaryGesture, normalizeWheelDelta } from "@/pages/session/ import { SessionContextUsage } from "@/components/session-context-usage" import { useDialog } from "@opencode-ai/ui/context/dialog" import { useLanguage } from "@/context/language" +import { useCommand } from "@/context/command" import { useSettings } from "@/context/settings" import { useSDK } from "@/context/sdk" import { useSync } from "@/context/sync" @@ -116,6 +117,7 @@ export function MessageTimeline(props: { const settings = useSettings() const dialog = useDialog() const language = useLanguage() + const command = useCommand() const sessionKey = createMemo(() => `${params.dir}${params.id ? "/" + params.id : ""}`) const sessionID = createMemo(() => params.id) @@ -163,6 +165,16 @@ export function MessageTimeline(props: { }) } + command.register("session-title", () => [ + { + id: "session.rename", + title: language.t("common.rename"), + category: language.t("command.category.session"), + disabled: !sessionID(), + onSelect: () => openTitleEditor(), + }, + ]) + const closeTitleEditor = () => { if (title.saving) return setTitle({ editing: false, saving: false }) diff --git a/packages/desktop/src/i18n/en.ts b/packages/desktop/src/i18n/en.ts index f93fe58f77a..aad5ac7b0ae 100644 --- a/packages/desktop/src/i18n/en.ts +++ b/packages/desktop/src/i18n/en.ts @@ -9,6 +9,7 @@ export const dict = { "desktop.menu.view": "View", "desktop.menu.help": "Help", "desktop.menu.file.newSession": "New Session", + "desktop.menu.file.renameSession": "Rename Session...", "desktop.menu.file.openProject": "Open Project...", "desktop.menu.view.toggleSidebar": "Toggle Sidebar", "desktop.menu.view.toggleTerminal": "Toggle Terminal", diff --git a/packages/desktop/src/menu.ts b/packages/desktop/src/menu.ts index de6a1d6a76c..caf7afada6a 100644 --- a/packages/desktop/src/menu.ts +++ b/packages/desktop/src/menu.ts @@ -69,6 +69,11 @@ export async function createMenu(trigger: (id: string) => void) { accelerator: "Shift+Cmd+S", action: () => trigger("session.new"), }), + await MenuItem.new({ + text: t("desktop.menu.file.renameSession"), + accelerator: "Shift+Cmd+E", + action: () => trigger("session.rename"), + }), await MenuItem.new({ text: t("desktop.menu.file.openProject"), accelerator: "Cmd+O",