First of all, kudos - the concept of an apply model is one of the key innovations in Cursor and it’s what hooked me from the beginning, but it’s starting to feel a bit unfit for purpose and I am spending way too much time waiting for the cursor to slowly crawl down the codefiles.
- It’s all but broken on Gemini and o1 models
- It’s broken over 500 lines of code
- it’s painfully slow
- it makes frequent mistakes, it only works about 40% of the time for me, even though I try and have very small codefiles
I have a good sense for how it works, i.e. it’s instructing a supervisor LLM with your original code file and the change request and outputting your modified file line by line.
What we desperately need now is a more directed and sparse version of this using language service i.e. use an LLM to decompose an edit into a bunch of language service instructions i.e. [GOTO THIS FILE] [GOTO THIS FUNCTION] [REPLACE THE SECOND STATEMENT] - the LLM could control the IDE through tool use, and reflexively verify its changes as it goes. Sparse change requests should run quickly on large code files.
Having a robust and fast apply model which worked in large code files for sparse updates would be like magic, surely it’s possible?