Keep/Undo missing for specific files in the same chat — Cursor 3.20.17 on macOS

Where does the bug appear (feature/product)?

Cursor IDE

Describe the Bug

Hi Cursor Support,

I’m experiencing inconsistent Keep/Undo behavior in Cursor 3.20.17 (Universal) on macOS.

In the same project and chat:

  • Adding a test comment to App.js shows Keep/Undo above the chat input and marks the change as pending in Review.
  • Adding the same test comment to src/views/DocumentViewer/DocumentViewer.js applies the change, but Keep/Undo is missing above the chat input and in Review.
  • When I open DocumentViewer.js directly in the code editor, Keep/Undo controls are visible beside individual change blocks.

The controls also work normally in a newly opened folder.

I have tried toggling Inline Diffs off and on, restarting Cursor, and moving the affected project’s workspaceStorage folder to a backup location. The workspace reset appeared to help temporarily, but the issue returned.

This makes it difficult to reliably review and undo changes from individual agent requests.

Is this a known issue in 3.20.17? Is there a supported fix or a setting that explains the different behavior between files?

I can provide screenshots and the affected request ID.

Best regards,
Thor Steinicke

Steps to Reproduce

In my affected project, using Cursor 3.20.17 on macOS:

  1. Open an Agent chat.
  2. Ask the agent to add only a test comment at the top of App.js.
  3. Keep/Undo buttons appear above the chat input and in Review.
  4. Undo that test change.
  5. In the same chat, ask the agent to add only a test comment at the top of src/views/DocumentViewer/DocumentViewer.js.
  6. The change appears in the file and the chat, but Keep/Undo buttons are missing above the chat input and in Review.
  7. Open DocumentViewer.js directly in the code editor. Keep/Undo controls are visible beside individual change blocks.

I can reproduce this difference in my existing project, but I have not reproduced it in a fresh folder.

Expected Behavior

After the agent edits a file, Keep/Undo controls should consistently appear above the chat input and in Review, as they do for App.js.

The same behavior should apply to DocumentViewer.js. I should be able to review, keep, or undo pending agent changes without having to locate individual change blocks in the code editor.

Operating System

MacOS

Version Information

3.20.17 (Universal)

For AI issues: which model did you use?

cursor grok 4.6

For AI issues: add Request ID with privacy disabled

9fce9d0a-a291-40bd-bc7b-85b08c2b00bd

Additional Information

Troubleshooting already attempted:

  • Toggled Inline Diffs off and on.
  • Disabled Auto Save.
  • Restarted Cursor.
  • Backed up and removed only the affected project’s workspaceStorage subfolder, then reopened the project.

The workspace reset appeared to help temporarily, but did not resolve the issue consistently.

Further testing showed that even a one-line comment behaves differently between App.js and DocumentViewer.js in the same Agent chat. Keep/Undo works for App.js, while DocumentViewer.js only shows these controls inside the code editor.

I have not reproduced the issue in a fresh folder. I would appreciate a fix that preserves my project files and chat history.

Does this stop you from using Cursor

Sometimes - I can sometimes use Cursor

Hey @thor_steinicke, thanks for the detailed report.

What you describe (the change is applied, the highlights and per-block Keep/Undo are there when you open the file, but nothing shows above the chat input or in Review) points at the pending changes on DocumentViewer.js being tracked against a different chat than the one you’re typing in, rather than at the edit itself.

That would also explain why a fresh folder is fine, and why clearing the workspace storage only helped until the file picked up pending changes again.

Two things to try that should get Keep/Undo back for that file:

  1. Open src/views/DocumentViewer/DocumentViewer.js in the editor.
  2. At the top of the file, click Keep File (or Undo File, if you don’t want those older changes). This clears every pending block on the file.
  3. In the same chat, ask the agent again to add a one-line test comment at the top of DocumentViewer.js.
  4. Check whether Keep/Undo now appears above the chat input and in Review.

If it still doesn’t appear after step 4, please reply with these three answers so we can pin it down:

  • When you open DocumentViewer.js after the agent’s edit, is the new test comment itself highlighted green with its own Keep/Undo, or are the highlighted blocks only older edits?
  • Open Review (or click Keep All) in your other, older chats for this project. Does any of them list DocumentViewer.js as pending?
  • In the Cursor terminal at the project root, run ls src/views/DocumentViewer/ and git ls-files | grep -i documentviewer, then paste both outputs. This tells us whether the folder or file name on disk differs in upper/lower case from the path Git and the agent use.