fix(cli): all Executing subagent tool calls dropped from UI state, breaking task-tree hierarchy
#22589 opened on Mar 16, 2026
Description
Bug Description
In useToolScheduler.ts, tool calls from non-root schedulers (subagents) are filtered before entering state. The filter passes through AwaitingApproval calls and previously-seen calls, but silently drops first-seen calls in Executing status:
event.toolCalls.filter(
(tc) =>
tc.status === CoreToolCallStatus.AwaitingApproval ||
prevCallIds.has(tc.request.callId),
);
Subagent tool calls that transition directly to Executing without first hitting AwaitingApproval — reads, globs, searches, MCP calls, and any non-dangerous tool — are never in prevCallIds on their first update, so they are dropped and never reach the UI.
Impact
Hierarchy display is broken for subagent work. The task-tree visualization feature builds its call graph using `parentCallId` on each `IndividualToolCallDisplay`. Because filtered-out calls never enter `toolCallsMap`, they are never included in `pendingHistoryItems`, and so `useTaskTree` never sees them. The tree is always flat even when a subagent is executing a deep call chain.
Beyond the task tree: any UI feature that needs to observe what a subagent is actually doing (live progress, step-through mode, error traces) is blind to these calls.
Relationship to #21052 / PR #21268
PR #21268 addresses a narrower slice of the same root cause: it adds tc.pid !== undefined to the
filter so that interactive shell calls (PTY-backed) are surfaced when they hang on user input. This
fix is complementary — it extends the pass-through to all Executing subagent calls, covering
non-shell tools (reads, MCP, etc.) that #21268 intentionally leaves filtered.
Fix
Add Executing status to the filter unconditionally:
tc.status === CeToolCallStatus.AwaitingApproval ||
tc.status === CoreToolCallStatus.Executing ||
prevCallIds.has(tc.request.callId),
Calls still in Scheduled/Validating remain hidden to prevent transient flicker in the
flat-list UI.
PR
https://github.com/TravisHaa/gemini-cli/tree/fix/subagent-tool-calls-hidden-from-task-tree
Related: #21052, PR #21268