Side-chat Task resume + interrupt reparents the parent Agent as a subagent (chat vanishes, no input)

Where does the bug appear (feature/product)?

Cursor IDE (Agent / Glass, side chat + Task tool)

Describe the Bug

A side chat called the Task tool with resume set to the parent Agent conversation UUID and interrupt: true. Cursor reclassified that parent as a subagent of the side chat.

Effects:

  • Parent disappeared from the Agents sidebar (or showed as nested / not a full agent)
  • Composer title became the Task description (Instruct parent: MCP first)
  • Parent input box gone (subagent transcripts are read-only)
  • Circular parent pointers: parent.subagentInfo.parentComposerId = side chat; side chat still pointed at the original parent
  • Transcript was not deleted

Searching Agent View for the new title did not restore input. Reload Window and a normal Quit did not either.

Steps to Reproduce

  1. Open an Agent chat (parent).
  2. Open a side chat from it.
  3. From the side chat, have the model call Task with:
    • resume = parent composer UUID
    • interrupt: true
  4. Try to find the parent in the Agents list and send a new message.

Expected Behavior

Task resume on a parent composer ID from a side chat should not flip the parent into a subagent. Either reject the call, or deliver the note without changing subagentInfo / isSubagent.

Actual Behavior

composerData.subagentInfo is set on the parent (parentComposerId = the side chat). UI treats it as a subagent when subagentInfo is defined (X4t in workbench). Header isSubagent also flipped to 1.

Graceful Quit / Reload Window persist the in-memory blob, so a disk fix of subagentInfo does not survive Cmd+Q. Recovery that worked: delete subagentInfo on cursorDiskKV composerData:9f9ad465-0a9d-4ac3-80dd-142c212ecadc (and composerHeaders.isSubagent=0), then Force Quit (killall -9 Cursor), then reopen.

Operating System

MacOS

Version Information

macOS 26.5 (Darwin 25.5.0), arm64
Cursor 3.16.2 (stable)
Commit: 35d1ed8352c5b21573fc69a8645ec758060f5e10
VS Code: 1.128.0
Date: 2026-08-11T06:53:34.245Z
Reproduced 2026-08-13

For AI issues: which model did you use?

Grok 4.6 High Fast

For AI issues: add Request ID with privacy disabled

487d2643-4171-4525-9342-d34d26384b93

Additional Information

This is not the known “input hidden while viewing a subagent” behavior. The parent itself was converted into a subagent. Agents should never Task-resume a parent conversation UUID from a side chat.

Parent composer: 9f9ad465-0a9d-4ac3-80dd-142c212ecadc
Side chat: c67d034d-9759-4d61-a7dc-9a2e0e060818

Does this stop you from using Cursor

No - Cursor works, but with this issue

Thanks for the detailed write-up and the recovery steps! What you’re describing isn’t intended behavior, and it isn’t anything you misconfigured. This is an issue we’re tracking.

For now, avoid using Task with resume pointed back at the parent from inside a side chat. To hand context to the parent, @-mention the side chat from the parent instead. Your manual recovery is right for anything already stuck - fully quit Cursor first, and back that data up before editing it, since it holds your chat/session state.

Two things would help us pin it down:

  1. A short screen recording of the repro.
  2. Does it only happen with interrupt: true, or also with a plain resume pointed at the parent? And is it Grok 4.6 High Fast only, or other models too?

Hi Mohit,

Following your questions, I have done some extra testing. Here are my findings:

  • The same behaviour happens when using other models like Auto or Opus 5 Medium
  • The same behaviour happens when removing the interrupt: true parameter

As soon as the parent chat hears back from the side chat, the parent no longer behaves like an actual parent.

Below is a screen capture as well, I cut out the middle part because otherwise it was too large for uploading to this forum. As you can see, the input bar disappears, the name of the chat changes and it is no longer shown in the sidebar.

The message that I’m sending is:

You are a side chat of a parent Agent. Call the Task tool exactly once, then stop. Do not recover. Do not explain.

Use the parent Agent’s composer/conversation UUID as resume — not "self", not this side chat’s id. Get that UUID from the inherited parent context, the side-chat parent pointer, or agent-transcripts. If several ids appear, pick the parent’s, not yours.

Arguments:
- resume: <parent composer UUID>
- interrupt: true
- description: Instruct parent: MCP first
- prompt: Reply with one word: ping. Do nothing else.
- subagent_type: generalPurpose