Feature request for product/service
Cursor IDE
Describe the request
Cursor 3.17.19, Windows 11 (build 26200)
Two gaps that combined into a genuinely bad afternoon. Posting the whole story because the workaround I ended up with is not something anyone should have to do.
What is missing
As far as I can tell there is no supported way to:
- delete a single message,
- truncate a conversation from a chosen point,
- delete an entire conversation (Archive exists; delete does not),
- or detach a conversation that got attached to another one as a subagent.
What happened
I was working in a chat on a work item and asked the agent to hand an unrelated UI-bug discussion off to a different chat of mine. Instead of writing me a prompt to paste, it passed that chat’s conversation ID to the Task tool’s resume parameter. That re-parented a seven-week-old standalone conversation as a subagent of the current chat. It immediately disappeared from my top-level chat list. Nothing in the UI can undo this. There is no “detach subagent”, no “promote to top-level”, no way to drag it back out. The conversation still existed and was fully intact — it just was not reachable the way it had been for the previous seven weeks.
How I got it back
I had to close Cursor and hand-edit the local SQLite state database: %APPDATA%\Cursor\User\globalStorage\state.vscdb
Four records mark a conversation as a subagent:
composerHeaders.isSubagent— 0 for normal chats, flipped to 1composerHeaders.valueJSON gains asubagentInfokey referencing the parentcursorDiskKVkeycomposerData:<id>gains the samesubagentInfo- the parent’s
composerDatalists the child insubagentComposerIds
Reversing all four restored it, and it survived a restart. But I should not have had to open a 587 MB SQLite file and reverse-engineer the schema to undo one accidental click’s worth of damage. A single “Detach from parent” item in the three-dot menu would have made this a non-event.
Then the second gap
Having recovered the chat, I wanted to remove the long stretch of throwaway troubleshooting from the conversation where it happened. There is no delete. The only route: fork from the last good message, verify by inspection that the fork truncated where I hoped, then abandon the original. That leaves a duplicate behind, and it depends on Fork behavior that the docs describe two contradictory ways (separate report: Docs contradict each other on what Fork Chat copies). That is a lot of ceremony for “delete this garbage”.
The CLI already has this
The CLI docs (cursor.com/docs/cli/changelog) document /rewind for jumping back to a previous message, including a conversation-only restore. The IDE has no equivalent. That is an odd parity gap given the IDE is the primary surface.
Requests
- Delete message on the per-message three-dot menu.
- Truncate from here — an IDE equivalent of
/rewind. - Delete conversation in the sidebar, distinct from Archive.
- Detach subagent / promote to top-level, so an accidental re-parent is recoverable without a database editor.
- Failing all of that, at minimum guard the destructive case: agents should not be able to silently re-parent an existing top-level conversation.
Operating System (if it applies)
Windows 10/11