diff --git a/packages/ui/src/components/session/SessionSidebar.tsx b/packages/ui/src/components/session/SessionSidebar.tsx index e6f69e52..3c5649b3 100644 --- a/packages/ui/src/components/session/SessionSidebar.tsx +++ b/packages/ui/src/components/session/SessionSidebar.tsx @@ -134,6 +134,7 @@ interface SortableProjectItemProps { onToggle: () => void; onHoverChange: (hovered: boolean) => void; onNewSession: () => void; + onNewWorktreeSession?: () => void; onOpenMultiRunLauncher: () => void; onClose: () => void; sentinelRef: (el: HTMLDivElement | null) => void; @@ -155,6 +156,7 @@ const SortableProjectItem: React.FC = ({ onToggle, onHoverChange, onNewSession, + onNewWorktreeSession, onOpenMultiRunLauncher, onClose, sentinelRef, @@ -253,18 +255,47 @@ const SortableProjectItem: React.FC = ({ - {/* New session button */} - + {isRepo && onNewWorktreeSession && ( + + + + + +

New session in worktree

+
+
+ )} + + + + + +

New session

+
+
@@ -1549,6 +1580,16 @@ export const SessionSidebar: React.FC = ({ openNewSessionDraft({ directoryOverride: project.normalizedPath }); } }} + onNewWorktreeSession={() => { + if (projectKey !== activeProjectId) { + setActiveProject(projectKey); + } + setActiveMainTab('chat'); + if (mobileVariant) { + setSessionSwitcherOpen(false); + } + createWorktreeSession(); + }} onOpenMultiRunLauncher={() => { if (projectKey !== activeProjectId) { setActiveProject(projectKey);