Feature request for product/service
Cursor IDE
Describe the request
Hi, can we allow for compressing/compacting our agent chat via command? I like to use a single chat to retain context instead of starting a new chat all the time. And currently, once you hit 100% context it automatically compresses the conversation and resets the context within the same chat. I find this very useful, and keeps the flow going. Whenever it does this, it becomes more effective again, while keeping our previous context, especially since it retains what it previously did. This means, every time I work with it, it starts off doing great, but by the time it reaches near max context, it becomes very degraded and starts hallucinating and making mistakes.
But I want to hit the context reset so that it compresses or summarizes the context and resets, instead of starting a new chat, because once it does, it becomes even more effective, since it has the previous context. If I start a new chat, I find it takes time to acclimate to the codebase again, before being effective. It also loses all it’s previous work history so it no longer “remembers” why it did what previously and how things worked. By having a long conversation that is continued through multiple compressions, it maintains all of this. But I don’t want to wait until it’s maxed out in context. If I can just trigger the compression or reset the context like in CLIs at like 50% whenever I begin a new task, that would be very helpful.
In the future, maybe some sort of indexing of a compressed base of all our conversations, aka Memory, would be even more amazing. I do genuinely think it works BETTER, when it has historical context and memory of what it previously worked on in the codebase. Instead of purely through documentation.
I noticed that this has been requested before, and apparently you can already @ previous chats. However, I don’t think achieve the same effect. When you @ another chat, I don’t think it provides it with the full compressed version of the chat that it fed into its context to create a seamless continuity in the chat. It simply references the previous chat. When you use this, it still has to go back and check everything again. It’s not like when you have it reach the context limit and it automatically summarizes the chat, it seems to know what happened before much more deeply. So, I still think this is a feature that is needed. It’s not hard to implement, there is already the automatic summarization which is what I’m asking for, but to be able to make it do it anytime.
tl;dr: From my usage and experience with the system, I find myself constantly trying to purposefully hit the max context JUST to trigger the summarization so I can move on to the next task effectively. Once it hits reset and does the summarization, it becomes MUCH more effective again. Arguably more so than starting from a new chat, because it has all the memory of the previous work it did. So I find myself using a single chat with many many resets works best for me. But in between resets, when it gets very close to 100% usage, it becomes very slow and bad. Yet, I still try to get it to reset instead of starting a new chat.
I have ACTUAL cases where this was the case:
There was an instance when I had done work with the agent in a chat, and it was close to hitting it’s limit, so its performance was degraded. I decided to try starting a New Chat to continue our work. But I found that because it did not have the prior context of what we did, it got completely off-track and began trying to do the work all over again, because it did not know exactly where we left off. I had to SWITCH BACK to the previous chat, and when I did, after continue to work with it until it reset the context automatically, it did MUCH BETTER than with a New Chat. This is proof that using the same chat works better, if you have a long session of development that needs to maintain continuity.