This isn’t a bug report or a feature request, it’s just something I noticed. Performance has significantly worsened recently, maybe even in the past few days. Now whenever I click ‘apply changes’, unless the suggested code includes all parts of the class in question, Cursor will flagrantly delete huge swaths of the class. It’s assuming that if a method isn’t included in the suggested changes, then it must be deleted.
Cursor always had a bad habit of doing this, but now it’s getting worse. I’d say more than 80% of the time Cursor will elect to remove functionality that’s already in place (doesn’t it know about Chesterton fences!). I’ve updated my custom prompt to explicitly warn against doing this, but this seems bad enough that it should just be in the cursor default prompt. It’s annoying to have to keep scolding the AI about removing existing functionality, I don’t always catch the deletions, and also the UI for approving changes is really finicky on my end. I find it difficult to click the approve buttons sometimes or there just isn’t a 1:1 correspondence between changes and discrete functionality, which forces me to reject all the changes entirely.
When I first started using Cursor, I feel like I could basically just tell it to write code and it would write better code than me. Now I feel like I have to baby the AI and check all of its work. Maybe now that my codebase is getting bigger it’s struggling to understand the context, but this strikes me as a more fundamental problem. I believe that an AI pair programmer should be more conservative in its changes, erring on the side of leaving in more redundant functionality than writing code with zero wiggle room.