diff --git a/src/renderer/components/team/review/ChangeReviewDialog.tsx b/src/renderer/components/team/review/ChangeReviewDialog.tsx
index 59a7d2c0..efac7fb9 100644
--- a/src/renderer/components/team/review/ChangeReviewDialog.tsx
+++ b/src/renderer/components/team/review/ChangeReviewDialog.tsx
@@ -606,14 +606,18 @@ export const ChangeReviewDialog = ({
// even if focus is inside a CM editor (focus often remains there after clicking buttons).
const now = Date.now();
- // Undo: recently rejected NEW file (deleted from disk + removed from review list)
- const removedRecently = now - lastNewFileRemoveAtRef.current < 30_000;
+ // Undo: rejected NEW file (deleted from disk + removed from review list)
const removedStack = removedNewFileUndoStackRef.current;
- if (
- removedRecently &&
- removedStack.length > 0 &&
- !document.activeElement?.closest('.cm-editor')
- ) {
+ const lastHunkAt = Object.values(lastHunkActionAtRef.current).reduce(
+ (max, v) => Math.max(max, v),
+ 0
+ );
+ const lastReviewActionAt = Math.max(lastBulkActionAtRef.current, lastHunkAt);
+ const newFileWasLastAction = lastNewFileRemoveAtRef.current >= lastReviewActionAt;
+ const isInEditor = !!document.activeElement?.closest('.cm-editor');
+ const lastViewConnected = !!lastFocusedEditorRef.current?.dom.isConnected;
+ const shouldPreferEditorUndo = isInEditor && lastViewConnected;
+ if (newFileWasLastAction && removedStack.length > 0 && !shouldPreferEditorUndo) {
e.preventDefault();
e.stopPropagation();
const snap = removedStack.pop()!;
@@ -621,7 +625,7 @@ export const ChangeReviewDialog = ({
...snap.file,
originalFullContent: '',
modifiedFullContent: snap.restoreContent,
- contentSource: 'disk-current',
+ contentSource: 'snippet-reconstruction',
};
addReviewFile(snap.file, { index: snap.index, content: restoredContent });
setActiveFilePath(snap.file.filePath);
diff --git a/src/renderer/components/team/review/ReviewToolbar.tsx b/src/renderer/components/team/review/ReviewToolbar.tsx
index 1b93dae2..dde07a11 100644
--- a/src/renderer/components/team/review/ReviewToolbar.tsx
+++ b/src/renderer/components/team/review/ReviewToolbar.tsx
@@ -153,7 +153,7 @@ export const ReviewToolbar = ({
Undo
- Undo last bulk operation (Ctrl+Z)
+ Undo last review operation (Ctrl+Z)
)}