Opening workspace rewrites LastWriteTime on many files without content change

Environment

  • OS: Windows 10
  • Cursor: latest (Pro+)
  • Project: large Delphi/FMX codebase (local folder, not Git remote required)

Summary Every time I open this workspace in Cursor and close it without editing anything, dozens of project files get a new LastWriteTime (Explorer “Date modified”), all in the same 1–2 second window. File sizes stay identical. Content samples are byte-identical to previous copies/history. This breaks backup workflows that rely on modification timestamps.

Important

  • I did not ask the Agent to edit those files.
  • Closing Cursor completely and reopening still reproduces it.
  • Same file set is often touched repeatedly across opens.

Repro steps

  1. Close Cursor completely (no Cursor process running).
  2. Capture file timestamps (custom read-only script comparing LastWriteTime + size).
  3. Open the workspace in Cursor.
  4. Do not edit/save any file.
  5. Close Cursor completely.
  6. Compare timestamps again.

Result ALERT: many files changed LastWriteTime, same size (rewrite/touch, not real edits). Examples include .pas, .fmx, .dpr, .dproj, and even .cursor/.vscode files.

Tried (did NOT fix)

  • files.autoSave = off
  • files.hotExit = off
  • editor.formatOnSave = false
  • window.restoreWindows = none (workspace settings)
  • Disabled Index Repositories for Instant Grep
  • Disabled Enable LSPs
  • Cleared workspace state.vscdb / retrieval cache while Cursor was closed
  • Still reproduces on next open/close

Evidence

  • Before/after compare shows same Length, new LastWriteTimeUtc for ~40 files in one batch.
  • Sample files remain SHA256-identical to prior good copies while mtime changes.

Expected Opening/closing Cursor with no edits must not change file content or LastWriteTime.

Actual Opening the workspace updates LastWriteTime on many files even with indexing/LSP disabled and no user edits.

Please investigate what process rewrites/touches these files on workspace open.

Hi there!

We detected that this may be a bug report, so we’ve moved your post to the Bug Reports category.

To help us investigate and fix this faster, could you edit your original post to include the details from the template below?

Bug Report Template - Click to expand

Where does the bug appear (feature/product)?

  • Editor, Tab & Chat (autocomplete, Composer, in-editor agent)
  • Terminal & commands
  • Models, pricing & API keys (availability, Auto/Max, BYOK/Bedrock)
  • MCP & tools
  • Cloud Agents & Automations (cursor.com/agents, scheduled/event)
  • BugBot & Code Review
  • Cursor CLI
  • Cursor Mobile
  • Remote (SSH / Dev Containers / WSL)
  • Account, billing & login
  • Something else…

Describe the Bug
A clear and concise description of what the bug is.


Steps to Reproduce
How can you reproduce this bug? We have a much better chance at fixing issues if we can reproduce them!


Expected Behavior
What is meant to happen here that isn’t working correctly?


Screenshots / Screen Recordings
If applicable, attach images or videos (.jpg, .png, .gif, .mp4, .mov)


Operating System

  • Windows 10/11
  • MacOS
  • Linux

Version Information

  • For Cursor IDE: Menu → About Cursor → Copy
  • For Cursor CLI: Run agent about in your terminal
IDE:
Version: 2.xx.x
VSCode Version: 1.105.1
Commit: ......

CLI:
CLI Version 2026.01.17-d239e66

For AI issues: which model did you use?
Model name (e.g., Sonnet 4, Tab…)


For AI issues: add Request ID with privacy disabled
Request ID: f9a7046a-279b-47e5-ab48-6e8dc12daba1
For Background Agent issues, also post the ID: bc-…


Additional Information
Add any other context about the problem here.


Does this stop you from using Cursor?

  • Yes - Cursor is unusable
  • Sometimes - I can sometimes use Cursor
  • No - Cursor works, but with this issue

The more details you provide, the easier it is for us to reproduce and fix the issue. Thanks!

Hey there!

What should stop it: before closing Cursor, open the Agent/Composer changes (Review) panel and Keep or Reject every pending edit. Cursor re-saves files that still have un-accepted Agent edits when the workspace opens (byte-identical, but a fresh LastWriteTime), and in a non-git folder that pending state never clears on its own, so the same set gets rewritten every open. Starting a new chat after big Agent sessions keeps it from building up. (That’s also why the autoSave/hotExit/indexing/LSP toggles didn’t help - this path ignores them.)

For your backups, keying on content hash instead of mtime is a good stopgap in the meantime.

Give that a try and let me know if the rewrites stop - I’ll post here when there’s an update.