Where does the bug appear (feature/product)?
Cursor IDE
Describe the Bug
Each workspace window registers 5 codebases under workspaceStorage / anysphere.cursor-retrieval / codebaseTelemetry:codebases:{uuid}:
| kind | path |
|---|---|
| 0 | project folder |
| 6 | ~/.cursor |
| 7 | ~/.claude |
| 8 | ~/.codex |
| 9 | ~/.agents |
Kinds 6–9 are the same absolute paths in every window, but each window assigns its own UUID. With 7 windows open, ~/.codex has 7 distinct codebase UUIDs, each generating its own git pack.
On extension-host restart (renderer closed MessagePort), anysphere.cursor-retrieval fires onCommand:cursor.codebaseTelemetry.triggerSnapshot. Within 0.5–4 seconds the push is canceled:
[ExtHostCursor] Failed to push plugins snapshot Canceled
This is not a timeout or network error. Concurrent eager activation of anysphere.cursor-agent-exec (activationEvent: *) races with the snapshot. The MCP cursor_mcp_lease_snapshot_store write starts after the cancel has already fired.
The canceled push leaves fully-written staging packs on disk:
~/Library/Application Support/Cursor/snapshots/codebases/<uuid>/staging/*.pack
These are never cleaned up. Each subsequent window open, agent resume, extension-host restart, or MCP lease rebuild writes another pack.
Evidence (2026-08-19)
Trigger frequency. 6 triggerSnapshot firings that evening: 13:40, 15:35, 17:14, 18:30, 21:08, 23:24. 18 Failed to push plugins snapshot Canceled lines across workbenches.
Exact log pairs (window2_wb1 exthost.log, session 20260819T141944):
2026-08-19 17:14:21.540 triggerSnapshot (root cause: anysphere.cursor-retrieval)
2026-08-19 17:14:23.613 Failed to push plugins snapshot Canceled
2026-08-19 18:30:28 → 18:30:29 (same pattern)
2026-08-19 21:08:23 → 21:08:26
2026-08-19 23:24:15 → 23:24:20
Leftover .codex packs. Three staging packs from three different workspace windows (projects, majia-huiyuan, Popskill-release), each 3,457,400,144 bytes (3.22 GiB). Different SHA256 hashes – full re-packs of the same tree, not copies. Source directory: ~/.codex/archived_sessions/ (4.6 GiB, 569 jsonl files).
Leftover .claude packs. Four staging packs, 341,115,543–341,115,835 bytes each (~325.31 MiB). Source: ~/.claude (projects, skills, plugins). After manual cleanup, a new session at 00:02 wrote a pack of 341,122,546 bytes (+7 KB vs prior), confirming .cursorignore placed under ~/.claude did not reduce pack size. The loop continued writing new 325 MiB packs at 00:15 and 00:21 on 2026-08-20.
Disk impact.
- Peak leftover staging: 10.93 GiB
- Total snapshots directory peak: ~15 GiB (codebases 11 GiB + plugin stores 4.0 GiB)
- After manual deletion of leftover staging: 4.7 GiB, then grew again as new packs appeared
Actual behavior
Unbounded disk growth. The same large directory trees are packed once per window per extension-host restart. Canceled pushes leave multi-GiB staging files. No settings toggle exists. .cursorignore has no effect on pack size.
Steps to Reproduce
- Open 3+ workspace windows on different projects.
- Wait for or trigger an extension-host restart (closing and reopening a window is sufficient).
- Observe
triggerSnapshotfollowed byFailed to push plugins snapshot Canceledin the extension host log. - Check
~/Library/Application Support/Cursor/snapshots/codebases/for leftover.packfiles understaging/. - Repeat step 2. Each cycle adds another full pack per extra root per window.
Expected Behavior
- Shared extra roots (
~/.codex,~/.claude,~/.cursor,~/.agents) should use one codebase ID per absolute path, not one per workspace window. - A canceled or aborted snapshot push must clean up its staging packs before returning.
- Agent session archives and plugin caches should not be packed as project codebases.
.cursorignoreand.cursorindexingignoreon those roots should be honored. - There should be a user-visible setting to disable codebase and plugin snapshots.
Operating System
MacOS
Version Information
Cursor IDE
Version: 3.16.29
VSCode Version: 1.128.0
Commit: 6246455961129c32969845e00aa25d87ae926ec0
Date: 2026-08-18T01:26:26.285Z
Build Type: Stable
Release Track: Default
OS: Darwin arm64 27.0.0
7 workspace windows open concurrently.
Only non-default user setting: window.autoDetectColorScheme: true
Additional Information
Requested fixes
These are bugs, not optimization requests.
- Clean up staging on cancel/abort. When the snapshot push is canceled, delete or roll back the staging pack. Do not leave multi-GiB files on disk.
- Deduplicate extra codebases by absolute path across windows.
~/.codexis one directory. It should have one codebase UUID regardless of how many workspace windows are open. - Honor ignore files on extra roots. Do not snapshot
~/.codex/archived_sessions/,~/.codex/sqlite/,~/.claude/projects/,~/.claude/plugins/cache/, or similar paths. Respect.cursorignoreand.cursorindexingignoreplaced at those roots.
Local workaround
I placed .cursorignore and .cursorindexingignore at ~/.codex (excluding archived_sessions/, sqlite/, cache/) and ~/.claude (excluding projects/, plugins/cache/). I manually delete leftover staging packs periodically. This does not fix the cancel race condition or the per-window UUID duplication.
Does this stop you from using Cursor
Sometimes - I can sometimes use Cursor