Cursor will use embeddings to figure out if it needs more files for additional context, or you can manually add them. It’s one of the weakest parts of the experience. Probably varies from repo to repo. Still not really capable of large scale automatic refactors.
Agreed. Even long-context models lose track of what they're doing pretty quickly as the size of the code base grows.
Cursor et al seem great for make small changes in context, or big changes in small apps. But I don't trust them to make large-scale refactoring decisions.
That said, if you can define really rigorous interfaces between parts, you can often get more mileage by just keeping those interfaces in context while asking for some kind of refactoring or implementation.