diff --git a/src/renderer/src/components/sidebar/WorktreeList.tsx b/src/renderer/src/components/sidebar/WorktreeList.tsx index 06857e45648..6f119097609 100644 --- a/src/renderer/src/components/sidebar/WorktreeList.tsx +++ b/src/renderer/src/components/sidebar/WorktreeList.tsx @@ -150,7 +150,11 @@ const VirtualizedWorktreeViewport = React.memo(function VirtualizedWorktreeViewp (row) => row.type === 'item' && row.worktree.id === pendingRevealWorktreeId ) if (targetIndex !== -1) { - virtualizer.scrollToIndex(targetIndex, { align: 'center' }) + // Why: `align: 'auto'` is a no-op when the card is already visible and + // otherwise scrolls the minimum amount to bring it into view. Using + // 'center' here made every worktree click re-center the sidebar, which + // is visually jumpy even when nothing needed to move. + virtualizer.scrollToIndex(targetIndex, { align: 'auto' }) } clearPendingRevealWorktreeId() })