cmux NEXT subagents: a subagent's view never shows a raw tool call id
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 (
mergeToolItemfalls 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](https://pr-comments-assets.blacksmith.sh/codesmith/view-with-codesmith-dark-v3-3x.png)
![Autofix with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/autofix-with-codesmith-dark-3x.png)
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.