Repository navigation
fix(acp): stream subagent text + reasoning chunks - #1626
Merged
Merged
Conversation
Propagate `thought` metadata through SubAgent STREAM_TEXT events and render them as agent message/thought chunks in ACP sessions.
tanzhenxin
requested review from
DennisYu07,
LaZzyMan,
Mingholy,
gwinthis and
pomelo-nwu
as code owners
January 27, 2026 08:59
Contributor
📋 Review SummaryThis PR introduces support for streaming subagent text chunks with optional thought metadata in ACP sessions. The changes propagate a 🔍 General Feedback
🎯 Specific Feedback🟡 High
🟢 Medium
🔵 Low
✅ Highlights
|
Contributor
Code Coverage Summary
CLI Package - Full Text ReportCore Package - Full Text ReportFor detailed HTML reports, please see the 'coverage-reports-22.x-ubuntu-latest' artifact from the main CI run. |
- Skip thought parts when accumulating roundText so reasoning content does not leak into the subagent's final answer. - Remove unnecessary `as SubAgentStreamTextEvent` type assertion. - Add core tests for STREAM_TEXT thought flag and finalText exclusion.
xaelistic
pushed a commit
to xaelistic/qwen-code
that referenced
this pull request
Jun 7, 2026
fix(acp): stream subagent text + reasoning chunks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
TLDR
STREAM_TEXTevents into ACP session updates so clients see incremental text while the subagent runs.thought/reasoning flag so ACP can render streamed chunks as eitheragent_message_chunk(output) oragent_thought_chunk(reasoning).Dive Deeper
When a subagent executes, the model may emit partial text while tools are running or between tool calls. ACP previously didn’t expose these subagent text chunks, so ACP output looked “silent” compared to the Qwen Code UI.
This change makes subagent streaming first-class in ACP:
packages/core): each streamed response part emitsSubAgentEventType.STREAM_TEXTwithtextand an optionalthoughtflag (reasoning vs output).packages/cli):SubAgentTrackerlistens forSTREAM_TEXTand forwards it via the session message emitter, mapping:thought: true→agent_thought_chunkthought: false/undefined→agent_message_chunkReviewer Test Plan
cd packages/cli && npx vitest run src/acp-integration/session/SubAgentTracker.test.tscd packages/core && npx vitest run src/subagents/subagent.test.tsLinked issues / bugs