🤖 fix: show nested tool calls during code_execution streaming #1366
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Problem
When using
code_execution(PTC), nested tool calls (e.g.,mux.bash(),mux.file_read()) didn't appear in the UI until they completed. Users expected to see "executing..." while long-running nested tools were in progress, just like regular top-level tool calls.Root Cause
Two issues combined:
1. MessageId Mismatch
The backend was emitting nested tool events with the wrong
messageId:aiService.tscreatedassistantMessageIdfor history and theemitNestedEventcallbackstreamManager.tscreated a separatemessageIdfor all stream eventsmessageId- nested events withassistantMessageIdcouldn't find the message stored understreamInfo.messageId2. React Reactivity
Even after fixing the messageId, the UI didn't update when nested tools completed:
handleToolCallEndmutatednestedCallobjects in placeSolution
Thread messageId through: Pass
assistantMessageIdfromaiService.tstostreamManager.startStream()so both use the same IDImmutable updates: Replace in-place mutation with immutable update pattern in
handleToolCallEndTesting
Generated with
mux• Model:anthropic:claude-opus-4-5• Thinking:high