From faef90fd4823c90a464c7b7f3d34e3201ab18c6b Mon Sep 17 00:00:00 2001 From: Jordan Munch O'Hare Date: Sun, 18 Oct 2026 10:45:09 +0200 Subject: [PATCH] fix(web): composer host and workspace tooltips show their shortcuts The host and workspace menus open with mod+shift+h and mod+shift+x by default, but their tooltips never said so, unlike the model picker's (#11536). Both tooltips now append the bound shortcut the same way the model picker does, and show nothing extra when it is unbound. Co-Authored-By: Claude Opus 5.5 --- .../src/components/BranchToolbarEnvModeSelector.tsx | 8 ++++++++ .../components/BranchToolbarEnvironmentSelector.tsx | 12 +++++++++++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/apps/web/src/components/BranchToolbarEnvModeSelector.tsx b/apps/web/src/components/BranchToolbarEnvModeSelector.tsx index 0a529ca5ee55..60a9584fe0b9 100644 --- a/apps/web/src/components/BranchToolbarEnvModeSelector.tsx +++ b/apps/web/src/components/BranchToolbarEnvModeSelector.tsx @@ -20,6 +20,9 @@ import { SelectValue, } from "./ui/select"; import { Tooltip, TooltipPopup, TooltipTrigger } from "./ui/tooltip"; +import { useAtomValue } from "@effect/atom-react"; +import { shortcutLabelForCommand } from "../keybindings"; +import { primaryServerKeybindingsAtom } from "../state/server"; const PREVIOUS_WORKTREE_SELECT_VALUE = "previous-worktree"; @@ -45,6 +48,10 @@ export const BranchToolbarEnvModeSelector = memo(function BranchToolbarEnvModeSe onUsePreviousWorktree, }: BranchToolbarEnvModeSelectorProps) { const composerFloatingLayerProps = useComposerMenuProps(); + const shortcutLabel = shortcutLabelForCommand( + useAtomValue(primaryServerKeybindingsAtom), + "composer.workspace", + ); const showPreviousWorktree = Boolean(previousWorktreeLabel && onUsePreviousWorktree); const envModeItems = [ { @@ -137,6 +144,7 @@ export const BranchToolbarEnvModeSelector = memo(function BranchToolbarEnvModeSe {effectiveEnvMode === "worktree" ? resolveEnvModeLabel("worktree") : resolveCurrentWorkspaceLabel(activeWorktreePath)} + {shortcutLabel ? ` · ${shortcutLabel}` : null} env.environmentId === environmentId) ?? null; @@ -107,7 +114,10 @@ export const BranchToolbarEnvironmentSelector = memo(function BranchToolbarEnvir - {autoEnvironmentLabel ?? activeEnvironment?.label ?? "Run on"} + + {autoEnvironmentLabel ?? activeEnvironment?.label ?? "Run on"} + {shortcutLabel ? ` · ${shortcutLabel}` : null} +