Source Control Graph "Open Changes" multi-diff collapses into a stack of repeated file headers ("TextModel got disposed before DiffEditorWidget model got reset")

Where does the bug appear (feature/product)?

Cursor IDE

Describe the Bug

Opening a commit’s changes from the Source Control Graph in the multi-file diff editor renders a wall of repeated file title headers stacked on top of each other, with the actual diff content visible behind them. Closing and reopening the editor shows the same broken view for that commit.

Every time this happens, the renderer log shows:

[error] TextModel got disposed before DiffEditorWidget model got reset: Error: TextModel got disposed before DiffEditorWidget model got reset
    at ... $D.dispose (workbench.desktop.main.js:131:55761)
    at U7o.destroyModel (workbench.desktop.main.js:18410:1448)
    at k2n.dispose (workbench.desktop.main.js:11678:59103)

It is logged ~2 s after the multi-diff opens and then again roughly every 3 minutes while it stays open, so the text models behind the open multi-diff seem to get disposed while the editor still holds them.

Steps to Reproduce

  1. Open a multi-root .code-workspace whose folders are git worktrees (7 repos in my case).
  2. Source Control → Graph → hover a commit → Open Changes.
  3. The commit I hit it on changes 22 files, two of which are generated files marked -diff in .gitattributes (*.gen.go linguist-generated=true -diff), so git reports them as binary. I suspect the mix of binary-by-attribute and text files, but haven’t isolated it.

Expected Behavior

One header per file with its diff; -diff files showing “Binary file changed”.

Operating System

MacOS

Version Information

  • Cursor 3.23.12 (VS Code 1.128.0, commit 2d29876d567da1607532b23bbf2cd5ddbca496f0)
  • macOS 26.7, Apple Silicon (arm64)

Does this stop you from using Cursor

No - Cursor works, but with this issue

Hey, thanks for the report and the log lines, they really help.

This is a known issue with the multi-file diff view that we’re already tracking. The repro via Source Control Graph and the error you caught TextModel got disposed before DiffEditorWidget model got reset are useful details, I’ve passed them to the team.

For now, two things that should help:

  1. Run Developer: Reload Window from the Command Palette Cmd+Shift+P to reset the broken view without restarting Cursor.
  2. To view that commit, expand it in the Graph and click files one by one. Each one will open in the normal single-file diff, which isn’t affected by this issue.

If you have a minute, could you check one thing: open only the worktree folder that contains that commit in a new window via File → Open Folder, not a .code-workspace. Then go to Graph → hover the same commit → Open Changes. Do you still see the stack of headers? Reply yes or no, and let me know if the error still shows up in the log.

I can’t share an ETA yet, but I’ll post here if there’s an update.