Cursor Team needs to understand Userspace

I understand that the Cursor team THINKS that the latest version they shat out is always the best and most stable. But it is not. Yesterday, I was still on version 2.0.77 after many many months, as despite lots of promises and “oooppps, soaawwwyyy“ from the team, they have not replaced the functionality of Custom Modes.

Before a single person comments (from the team or not) about how I could just use rules/hooks/whatever feature they are trying to say is a replacement, it isn’t. DON’T tell me (or for that matter, any other developer) how to build my god damn workflow. Its MY workflow, not YOURS, so if its BROKEN for ME, its BROKEN, and I want to use what works.

Cursor 2.0.77, as of yesterday, was working for me, quite well, as I have kept up a ton of support for the nixos-cursor project, and even shipped features cursor has not thought of, like an interactive dialog that is a tool call that can be used “in line“ via a pop up window (which might not be cool for everyone, but for me, it keeps my human in the loop flow tight, and super efficient). Then, today, I boot it up, to get this error:

Request ID: da13d09f-ab2a-4ac2-a67a-e2f09c417062
“{“error”:“ERROR_GPT_4_VISION_PREVIEW_RATE_LIMIT”,“details”:{“title”:“Please update to the latest version of Cursor at Download · Cursor to continue ubecasuesing the Agent”,“detail”:“Please update to the latest version of Cursor at Download · Cursor to continue using the Agent”},“isExpected”:true}”
ConnectError: [resource_exhausted] Error
at QJc.$endAiConnectTransportReportError (vscode-file://vscode-app/home/e421/.cache/appimage-run/febedc9a380585e73b7c42947c52b0def52807d2c90763ffeb8e9c31e44aa7fd/usr/share/cursor/resources/app/out/vs/workbench/workbench.desktop.main.js:4989:399336)
at Ywo._doInvokeHandler (vscode-file://vscode-app/home/e421/.cache/appimage-run/febedc9a380585e73b7c42947c52b0def52807d2c90763ffeb8e9c31e44aa7fd/usr/share/cursor/resources/app/out/vs/workbench/workbench.desktop.main.js:492:36007)
at Ywo._invokeHandler (vscode-file://vscode-app/home/e421/.cache/appimage-run/febedc9a380585e73b7c42947c52b0def52807d2c90763ffeb8e9c31e44aa7fd/usr/share/cursor/resources/app/out/vs/workbench/workbench.desktop.main.js:492:35749)
at Ywo._receiveRequest (vscode-file://vscode-app/home/e421/.cache/appimage-run/febedc9a380585e73b7c42947c52b0def52807d2c90763ffeb8e9c31e44aa7fd/usr/share/cursor/resources/app/out/vs/workbench/workbench.desktop.main.js:492:34514)
at Ywo._receiveOneMessage (vscode-file://vscode-app/home/e421/.cache/appimage-run/febedc9a380585e73b7c42947c52b0def52807d2c90763ffeb8e9c31e44aa7fd/usr/share/cursor/resources/app/out/vs/workbench/workbench.desktop.main.js:492:33336)
at GDt.value (vscode-file://vscode-app/home/e421/.cache/appimage-run/febedc9a380585e73b7c42947c52b0def52807d2c90763ffeb8e9c31e44aa7fd/usr/share/cursor/resources/app/out/vs/workbench/workbench.desktop.main.js:492:31429)
at _e._deliver (vscode-file://vscode-app/home/e421/.cache/appimage-run/febedc9a380585e73b7c42947c52b0def52807d2c90763ffeb8e9c31e44aa7fd/usr/share/cursor/resources/app/out/vs/workbench/workbench.desktop.main.js:49:2962)
at _e.fire (vscode-file://vscode-app/home/e421/.cache/appimage-run/febedc9a380585e73b7c42947c52b0def52807d2c90763ffeb8e9c31e44aa7fd/usr/share/cursor/resources/app/out/vs/workbench/workbench.desktop.main.js:49:3283)
at ggt.fire (vscode-file://vscode-app/home/e421/.cache/appimage-run/febedc9a380585e73b7c42947c52b0def52807d2c90763ffeb8e9c31e44aa7fd/usr/share/cursor/resources/app/out/vs/workbench/workbench.desktop.main.js:4974:12156)
at MessagePort. (vscode-file://vscode-app/home/e421/.cache/appimage-run/febedc9a380585e73b7c42947c52b0def52807d2c90763ffeb8e9c31e44aa7fd/usr/share/cursor/resources/app/out/vs/workbench/workbench.desktop.main.js:7498:18439)

After some investigation, turns out, it has been depreciated at the api level, as best Ican tell. All without any real kinds heads up other than their constant pestering in the ide of “hey, there is a new version, try it!“ (fyi, that is not a warning/heads up team, a heads up would be an email or something direct, or at least a week of a special error message with info on what is changing and why and when).

I get wanting to move fast, break things, and ship new features. I do, I promise guys, I know how fun it is. That said, at least in the “vibe-coding” (I hate myself and this language) space/community, cursor is supposed to be the mature ish product/team in the room, if not the adult in the room, compared to antigravity, loveable, copilot, etc. That is because for a very long time, they had a reliable platform to BUILD a PERSONALIZED, CUSTOM, WORKFLOW that the DEV could choose, not ANYSHPERE -__-.

Cursor Team, why did you have to change that direction? 2.0 was a mistake, and yall know it, and this is another one. More and more, I feel less and less in control of the agent harness, and more and more like my control is being cut away bit by bit to get them to nickel and dime power users. I want to be wrong, but nothing that has happened other than the long lull between 2.3.xx and 2.4.xx (which gave me apparently false hope that things were going the right direction) to give any indication that the fundamental mentality of the team has changed for the better.

Linus Torvalds has many rules for kernel development, but the one famous and immutable rule he has is very simple: WE DO NOT BREAK USER SPACE.

When Linus says this, he isn’t being a pedant; he’s acknowledging a very real social contract. To help make this clear, lets use an analogy: If the kernel (Cursor) changes in a way that breaks a previously working program (my workflow/Custom Modes/stuff built on top/with), the kernel team (cursor team) is at fault. Period. It doesn’t matter if the old way was ‘messy’ or if the new version has ‘better features.’

By deprecating the API for 2.0.77 at the server level, you are breaking that contract, and losing dev trust, something notoriously difficult to get back once lost. You’ve turned a tool I rely on into a fragile service that can be yanked out from under me at any moment for the sake of your metrics. You are treating the IDE like a social media app where you can A/B test the UI, rather than the bedrock of a developer’s environment.

Refusing to break User Space is why Linux runs the world, and Microsoft is one of the most hated corps in the dev community, and why WIndows is dying. It’s the guarantee that the work you do today won’t be invalidated by a maintainer’s whim tomorrow. Cursor is currently failing this test. By forcing upgrades through server-side deprecation, you are signaling that Cursor is simply a PRODUCT you want to control, not a PLATFORM you want us to build on.

For those of us in the community and beyond who are trying to extend and improve this ecosystem, this is a massive red flag. I cannot invest time into ‘vibe-coding’ or building advanced agent harnesses if the underlying foundation is made of sand. You have a choice: you can be the stable kernel that empowers the next generation of development, or you can be another short-lived SaaS that burned its power users for the sake of a version number. Fix the API, restore the modes, and stop breaking userspace.