Agents sidebar hides ~166 chats after switching from multi-root workspace to plain folder (stale composerHeaders.workspaceId on Linux)

Where does the bug appear (feature/product)?

Cursor IDE

Describe the Bug

After moving from a multi-root workspace (BPM + pattern-wallpaper) to opening /mnt/D/mehul-staging/bpm as a plain folder, the Agents sidebar showed only 3 chats even though ~170 chat transcripts still existed on disk and were indexed in glass project membership. The other 166 chats were not deleted — they were hidden because composerHeaders rows in globalStorage/state.vscdb still referenced old workspace IDs from prior paths (workspace.json, /media/…/mehul-staging/bpm, etc.). The sidebar filters by current workspaceId; chats bound to old IDs never appear.

Steps to Reproduce

Use Cursor on Linux with a repo opened as a multi-root workspace (e.g. workspace.json with two folders), or the same repo opened via a different path (e.g. /media/…/bpm vs /mnt/D/…/bpm).
Accumulate many agent chats over time (50+).
Remove a folder from the workspace or switch to File → Open Folder on one folder only (plain folder, not workspace file).
Optionally change mount path (/media/… → /mnt/D/…) or recreate workspace.json.
Quit Cursor fully and reopen the project as a plain folder.
Open the Agents sidebar.

Expected Behavior

All agent chats for that project appear in the Agents sidebar.
Or Cursor migrates/rebinds chat metadata when workspace identity changes.
Or a clear in-app message: “X chats exist but are bound to a previous workspace” with a repair option.

Operating System

Linux

Version Information

Version: 3.18.25
VSCode Version: 1.96.x (Cursor fork)
Commit: 280eca2911f1774689696e5f1efa5a4f97a87af0
Date: 2026-08-31T23:08:02.261Z
OS: Linux x64 7.0.0-30-generic
Install path: /usr/share/cursor/cursor

Does this stop you from using Cursor

Sometimes - I can sometimes use Cursor

Hey @Mehul_Mehul, thanks for the detailed report. Nothing was deleted. The 166 chats are still on disk and still open fine, they are just bound to a workspace identity that no longer matches the folder you have open.

The chat list in the editor only shows chats whose stored workspace id equals the current one. On Linux a plain folder’s id is derived from its full path plus its inode, and a multi-root workspace has its own id derived from the workspace file’s path.

So switching from the workspace file to a plain folder, moving from /media/... to /mnt/D/..., and recreating the workspace.json each produced a new identity, and the chats created under the earlier ones stopped matching. This is a known limitation we are tracking, and I have added your report to it!

Two ways to get at them today, with no file edits:

  1. Open the Agents window (Command Palette, then “Open Agents Window”, or the Agents button in the title bar). It does not filter by workspace id, so the older chats show up there. If they are split across sections such as “workspace.json” or an older “bpm”, use the grouping control at the top of the sidebar and switch it to Updated to see everything in one list.

  2. For the chats you created while the multi-root workspace was open, use File > Open Workspace from File and pick the original workspace.json. Cursor computes the old id again and those chats reappear in the editor’s chat list.

Could you confirm the Agents window shows the missing chats? That at least tells us that the chats are still on disk.