fix(sessions): preflight every worktree move

This commit is contained in:
mattv8
2026-08-27 18:43:37 -06:00
parent 8fc08853b3
commit 26d6d72551
5 changed files with 45 additions and 80 deletions
+9 -4
View File
@@ -71,7 +71,7 @@ import { copyTextToClipboard } from '@/lib/clipboard';
import { buildExportFilename, downloadAsMarkdown, formatSessionAsMarkdown, saveAsMarkdownDesktop } from '@/lib/exportSession';
import { Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle } from '@/components/ui/dialog';
import { Button } from '@/components/ui/button';
import { startSessionTreeWorktreeMove, useIsSessionWorktreeMovePending } from '@/lib/worktrees/sessionWorktreeMove';
import { requestSessionTreeMove, useIsSessionWorktreeMovePending } from '@/lib/worktrees/sessionWorktreeMove';
const DESKTOP_HEADER_ICON_BUTTON_CLASS = 'app-region-no-drag inline-flex h-8 w-8 items-center justify-center gap-2 rounded-md typography-ui-label font-medium text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary disabled:pointer-events-none disabled:opacity-50 hover:bg-interactive-hover transition-colors';
@@ -1059,12 +1059,17 @@ export const Header: React.FC = () => {
}
}
startSessionTreeWorktreeMove({
requestSessionTreeMove({
kind: 'quick',
root,
descendants,
sourceDirectory: sessionDirectory,
successMessage: t('sessions.sidebar.session.moveToWorktree.success'),
failureMessage: t('sessions.sidebar.session.moveToWorktree.failed'),
messages: {
success: t('sessions.sidebar.session.moveToWorktree.success'),
failure: t('sessions.sidebar.session.moveToWorktree.failed'),
sourceVerificationFailed: t('sessions.sidebar.session.moveToWorktree.sourceVerificationFailed'),
applyChangesFailed: t('sessions.sidebar.session.moveToWorktree.applyChangesFailed'),
},
});
}, [currentSessionId, isCurrentSessionActive, isCurrentSessionMovingToWorktree, sessionDirectory, t]);