Desktop app: resumed background subagent shows only the SendMessage JSON; transcript looks frozen until the agent completes

Status Open
Reported on v2.1.268
Maintainer reply None cached
Activity 0 comments · opened Sep 11, 2026

Environment

  • Claude Code 2.1.268, Windows 11 Pro, Claude desktop app (Code tab)
  • Model: Fable 5.1 (orchestrator), Sonnet subagents via the Agent tool with run_in_background: true

What happens

When a background subagent finishes and I resume it with SendMessage (same agentId, to continue with its context), the main transcript shows only the raw resume result as the last visible step, e.g.

{"success":true,"message":"Resuming agent a4155c6","resumedAgentId":"a4155c61ac38078ed","pin":{"id":"a4155c61ac38078ed","name":"a4155c61ac38078ed","ref":"24607c"}}

followed by a spinner. Nothing else updates for the whole run (20 to 50 minutes in my case), even though the agent is actively editing files and running tests. The user watching the session reads this as "the agent is stuck" or "the transcript is broken" and asked me several times whether it had hung. Checking file mtimes and the agent's output file showed it was working the entire time.

The first (spawn) run of the same agent does not have this problem in the same way. The gap is specific to resumed runs: the resume result is rendered as a bare JSON blob rather than a "resumed agent" row, and there is no progress indication (tool-call count, last tool, elapsed time) while it runs.

Expected

  • Render the SendMessage resume result like a spawned agent row (name, status "running", elapsed), not raw JSON.
  • Show some liveness for a resumed background agent while it works (last tool call or a counter), the same as a freshly spawned one.
  • Make it clear in the UI that a resumed agent reports only on completion.

Steps to reproduce

  1. Spawn a background agent with the Agent tool (run_in_background: true), let it complete.
  2. Call SendMessage with its agentId and a follow-up task that takes several minutes.
  3. Observe the transcript: only the raw JSON result of SendMessage is shown, with a spinner, until the completion notification arrives.

View original on GitHub ↗