#3728·paseo

bug: Trae subagent output appears in the parent conversation

Author: i-PearCreated Aug 23, 2026Updated Sep 18, 2026
Labelsbugp3triaged

What's broken

When Trae CLI runs a subagent, the child agent's reasoning and replies are appended to the parent conversation. Paseo already exposes a provider-subagent track, so the expected behavior is for child output to appear there while the spawn tool and parent response remain in the parent timeline.

Steps to reproduce

  1. Connect a Paseo daemon configured with Trae CLI.
  2. Create a Trae agent using gpt-5.6-sol/ultra.
  3. Ask it to delegate part of the task to a subagent.
  4. Observe the child reasoning and reply chunks in the parent conversation instead of the subagent track.

Environment

  • Surface: macOS client connected to a Linux daemon
  • Paseo daemon source: 33cf6cf33 (workspace version 0.5.0-beta.4)
  • Trae CLI: 0.201.1-alpha.18 (internal edition)
  • Model: gpt-5.6-sol/ultra

Protocol evidence

Identifiers and message text are redacted below; field placement is unchanged.

Trae reports the spawn on the update metadata:

json
{
  "method": "session/update",
  "params": {
    "sessionId": "<parent-thread>",
    "update": {
      "sessionUpdate": "tool_call",
      "toolCallId": "<spawn-call>",
      "_meta": {
        "traex": {
          "type": "subagent_control",
          "action": "spawn_agent",
          "parentThreadId": "<parent-thread>",
          "parentToolCallId": "<spawn-call>",
          "childThreadId": "<child-thread>",
          "agentNickname": "<nickname>"
        }
      }
    }
  }
}

Child output is tagged on the enclosing notification:

json
{
  "method": "session/update",
  "params": {
    "sessionId": "<parent-thread>",
    "update": {
      "sessionUpdate": "agent_message_chunk",
      "content": { "type": "text", "text": "<child-output>" }
    },
    "_meta": {
      "traex": {
        "type": "subagent_child",
        "parentThreadId": "<parent-thread>",
        "parentToolCallId": "<spawn-call>",
        "childThreadId": "<child-thread>"
      }
    }
  }
}

The child notification is currently surfaced as a root assistant update, which produces the interleaved conversation.