From 54c3fb9aa5bdf0938be553b35bbfdef4b721606e Mon Sep 17 00:00:00 2001 From: brennanb2025 Date: Sun, 31 May 2026 20:27:45 -0700 Subject: [PATCH] Add workspace auto-rename branch hint Co-authored-by: Orca --- .../components/NewWorkspaceComposerCard.tsx | 26 ++++-- .../new-workspace/AutoRenameBranchHint.tsx | 89 +++++++++++++++++++ 2 files changed, 110 insertions(+), 5 deletions(-) create mode 100644 src/renderer/src/components/new-workspace/AutoRenameBranchHint.tsx diff --git a/src/renderer/src/components/NewWorkspaceComposerCard.tsx b/src/renderer/src/components/NewWorkspaceComposerCard.tsx index 55a25518502..894a19c17f3 100644 --- a/src/renderer/src/components/NewWorkspaceComposerCard.tsx +++ b/src/renderer/src/components/NewWorkspaceComposerCard.tsx @@ -9,7 +9,8 @@ import { FolderPlus, LoaderCircle, PlugZap, - Settings2 + Settings2, + Sparkles } from 'lucide-react' import { Button } from '@/components/ui/button' import { Tooltip, TooltipContent, TooltipTrigger } from '@/components/ui/tooltip' @@ -32,6 +33,7 @@ import SparseCheckoutPresetSelect from '@/components/sparse/SparseCheckoutPreset import SmartWorkspaceNameField, { type SmartWorkspaceNameSelection } from '@/components/new-workspace/SmartWorkspaceNameField' +import AutoRenameBranchHint from '@/components/new-workspace/AutoRenameBranchHint' import type { SetupConfig } from '@/lib/new-workspace' import type { WorkspaceCreateErrorDisplay } from '@/lib/workspace-create-error-format' import type { SshConnectionStatus } from '../../../shared/ssh-types' @@ -254,6 +256,7 @@ export default function NewWorkspaceComposerCard({ const defaultTuiAgent = useAppStore((s) => s.settings?.defaultTuiAgent ?? null) const disabledTuiAgents = useAppStore((s) => s.settings?.disabledTuiAgents ?? []) const updateSettings = useAppStore((s) => s.updateSettings) + const autoRenameBranchFromWork = useAppStore((s) => s.settings?.autoRenameBranchFromWork ?? false) const nameInputFocusFrameRef = React.useRef(null) const submitShortcutModifierLabel = getScreenSubmitModifierLabel() const selectedRepoName = React.useMemo(() => { @@ -436,10 +439,23 @@ export default function NewWorkspaceComposerCard({
- +
+ + {selectedRepoIsGit ? ( +
+ {autoRenameBranchFromWork ? ( + + + Auto-named if left blank + + ) : null} + +
+ ) : null} +
s.settings?.autoRenameBranchFromWork ?? false) + const updateSettings = useAppStore((s) => s.updateSettings) + const openSettingsPage = useAppStore((s) => s.openSettingsPage) + const openSettingsTarget = useAppStore((s) => s.openSettingsTarget) + const closeModal = useAppStore((s) => s.closeModal) + + const handleOpenSettings = React.useCallback((): void => { + // Why: the setting lives in the Git pane; closing the composer first keeps + // the settings page from rendering behind the modal. + closeModal() + openSettingsTarget({ pane: 'git', repoId: null }) + openSettingsPage() + }, [closeModal, openSettingsPage, openSettingsTarget]) + + return ( + + + + + +
+
+
+ Auto-rename branch + +
+

+ When you leave the name blank, Orca renames the branch to match the work once an agent + starts. +

+
+ + +
+
+
+ ) +}