Thanks for the follow-up. Here is everything requested, with paths and repo details redacted.
Cursor build
| Field |
Value |
| Version |
3.7.12 |
| VS Code Extension API |
1.105.1 |
| Commit |
b887a26c4f70bd8136bfffeda812b24194ec9ce0 |
| Date |
2026-06-05T01:45:12.918Z |
| Layout |
editor |
| Build Type |
Stable |
| Release Track |
Default |
| Electron |
39.8.1 |
| Chromium |
142.0.7444.265 |
| Node.js |
22.22.1 |
| V8 |
14.2.231.22-electron.0 |
| OS |
Linux x64 6.5.0-14-generic |
1. Tasks output log (at failure time)
View → Output → Tasks (before workaround):
Error: Npm task detection: failed to parse the file /home/[REDACTED]/Documents/GitHub/[REDACTED]-monorepo/package.json
Activating task providers npm
Error: Npm task detection: failed to parse the file /home/[REDACTED]/Documents/GitHub/[REDACTED]-monorepo/package.json
Notes:
- Failure is on the repo root
package.json, not a nested workspace package.
Activating task providers npm appears between errors → npm task provider is still activating/scanning.
- Terminal
pnpm run … works on the same file; JSON.parse / Node read the file fine.
After workaround (task.autoDetect: "off", see below): Tasks output is quiet — no repeat parse toasts. NPM Scripts sidebar is empty (expected with auto-detect off).
2. Settings + scope
User (~/.config/Cursor/User/settings.json) — currently:
{
"explorer.confirmDelete": false,
"cursor.inlineDiff.enablePerformanceProtection": false,
"window.autoDetectColorScheme": false,
"task.autoDetect": "off"
}
Workspace: no .vscode/settings.json in the repo (no folder-level overrides).
Previously tried (not in active settings when errors occurred):
"npm.autoDetect": "off" — errors still appeared (or sidebar still broke).
- Aggressive
"npm.exclude" (e.g. **/node_modules/**, **/packages/**, legacy app paths) — ~10 scripts still visible, errors continued.
Currently applied workaround: "task.autoDetect": "off" at User scope only.
| Setting |
Before errors |
Now (workaround) |
Scope |
npm.autoDetect |
default (on) / also tried "off" |
not set |
User |
npm.exclude |
tried aggressive list |
not set |
— |
task.autoDetect |
default (on) |
"off" |
User |
VS Code comparison not completed yet on this machine. I can follow up with Stable/Insiders version + same-repo test if needed.
4. task.autoDetect: "off" workaround result
With "task.autoDetect": "off" (User) |
Result |
| Parse toasts in Tasks output |
Stopped (quiet after reload) |
| NPM Scripts sidebar |
Empty (no auto-discovery) |
Terminal pnpm run … |
Works |
Signal: Disabling all task auto-detection fixes the false “failed to parse” toasts. Disabling only npm.autoDetect did not (in my earlier attempts). That suggests detection is triggered on a path broader than the npm setting alone — worth confirming on Cursor’s side whether something beyond stock VS Code npm detection still scans manifests.
5. Environment & repo shape (sanitized)
- Package manager: pnpm 10.33.0 (
packageManager in root manifest)
- Monorepo: pnpm workspaces + Turborepo
- Node:
.nvmrc → 20 (IDE Node 22.22.1 per About)
- Workspace manifests (excluding
node_modules): ~81 package.json files
- Root manifest: ~72 npm scripts; valid JSON; includes large
pnpm.overrides block
Sanitized tree:
[REPO_ROOT]/
├── package.json ← errors point here
├── pnpm-workspace.yaml
├── turbo.json
├── apps/
│ └── [single-electron-app]/
├── packages/ (~60 shared packages)
└── modules/
├── ad-traffic/ (+ engine subpackages)
├── search-traffic/
└── soundcloud/
pnpm workspace globs: packages/*, apps/*, modules/*, modules/ad-traffic/engines/*
High-churn scripts that rewrite many manifests quickly (possible read-during-write races):
sync:bot-deps / sync:bot-deps:force — refreshes shared bot runtime pool / junction node_modules
sync:bot-packages — regenerates */bot/package.json from a central manifest
lint:workspaces — applies lint scripts across workspace packages
sync:lockfile — pnpm install --lockfile-only
Summary
Valid root JSON, working terminal, broken/unstable NPM Scripts discovery in Cursor — false “failed to parse” on the root manifest. task.autoDetect: "off" stops the toasts but leaves the sidebar empty; npm.autoDetect: "off" + heavy npm.exclude did not reliably fix it.
Please treat this as Cursor-side investigation (scanner / race / misleading error message), not invalid repo JSON. Happy to provide additional Tasks logs, a sanitized directory listing, or a screen recording on request — I cannot share the full private monorepo.