cmux NEXT subagents: a subagent's view never shows a raw tool call id

Merged
TE
17d ago
+83-1

Leo, 2026-10-22: "and why subagents have so little talking? idk". His subagent view's first row was a raw tool_use id, "toolu_01RqigDE1xKq7LfoCN2m0Wop".

Cause. Two paths put a bare call id in the subagent's view:

  • An update to a call whose start the view never saw, with no title, drew a row of nothing but the id (mergeToolItem falls back to the call id).
  • The spawning Agent call's own updates, tagged with the subagent, were filed as the subagent's steps.

Change.

  • childRows.ts: such an untitled, unseen update draws no row. Once the older page with its start loads, the row draws with its title.
  • subagentFold.ts: updates to a spawn call stay the parent's.

Test (red first). test/subagent-view-no-raw-ids.test.ts, run through the real fold. It was red at the first commit (6 raw-id texts). Subagent, summary, inspector and background-task suites: 107 pass. The 1 failure (summary-background-work.test.tsx) also fails with base sources.

Follow-up: the main transcript's mergeToolItem has the same raw-id fallback; a localized generic name there gets its own PR.

No capture: rows disappear only in the state the test builds.

🤖 Generated with Claude Code

Agent session: huge-blue


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need.


Summary by cubic

Stops a subagent's view from showing a raw tool call id, and keeps the spawning Agent call's updates out of the subagent's own steps.

  • In childRows.ts, an update to a call whose start the view never saw, with no title, draws no row instead of a row containing only the raw call id.
  • In subagentFold.ts, updates to the Agent call that spawned the subagent are filed as the parent's, not the subagent's.
  • Adds test/subagent-view-no-raw-ids.test.ts, run through the real fold, covering both cases. The one existing test failure (summary-background-work.test.tsx) also fails with base sources.