Repository navigation
[Bug]: Running Claude workflow member chats show only "Thinking", with no live thinking or tool calls #18798
Description
Before submitting
- I searched existing issues and did not find a duplicate.
- I included enough detail to reproduce or investigate the problem.
Area
apps/server
Steps to reproduce
- In a Claude thread, have the agent run a
Workflowthat includes at least one long member agent, for example one that runs 30+ minutes of tool calls. - While that member runs, open the workflow in Lineage and click the running member to open its chat.
Expected behavior
The member chat streams the member's work while it runs (summarized thinking, tool calls, text), the way an ordinary Agent subagent's chat does. At minimum, it should not show a live "Thinking" indicator that never changes.
Actual behavior
The member chat contains only the member's prompt, followed by a shimmering Thinking row whose timer keeps counting. In my case it ran for 40+ minutes and nothing else appeared. The thinking, tool calls and text show up nowhere until the member finishes, and then only its final answer is added.
The member was working the whole time. Its Claude Code transcript (<transcriptDir>/agent-<agentId>.jsonl) was being written live. Partway through the run it already held 161 summarized thinking blocks, 308 tool_use / tool_result pairs and 12 text blocks. In T3's projection, the member's child thread held exactly one turn item, the user_message prompt. Every earlier member of the same workflow (17 of them) has exactly two: the prompt and the final assistant_message.
This looks like a scope limit rather than a regression. #12598 (which fixed #15448) scoped member chats to "the original prompt, final answer and workflow breadcrumb". In ClaudeAdapterV2.projectClaudeWorkflowMembers, readWorkflowAgentAnswers reads a member's transcript only once the member is settled, and only extracts assistant text. As workflowAgentAnswers.ts notes, a member "emits nothing on the event stream". But #15448 called out that "a real subagent's child thread fills with its tool calls". The result is a member chat that looks like a stuck turn. Users drive workflows that run members for tens of minutes, so the Thinking row ends up as a lying spinner.
Possible directions, roughly from cheapest to fullest:
- While a member is running, show its latest tool or progress line (the coordinator's progress snapshot already carries some of this) instead of a bare "Thinking".
- Incrementally tail
agent-<agentId>.jsonlwhile the member runs (the run handles already providetranscriptDir, and the read is already contained), and project thinking, tool and text items into the member's child thread with the same shapes ordinary subagents use.
Impact
Major degradation or frequent failure
Version or commit
T3 Code 0.0.46-nightly.20261012.3021 (server). Code references checked against main at 0e7346c. Claude Code 2.1.296.
Environment
Ubuntu 26.04 server (linuxbox) running the nightly as a systemd service, viewed from the T3 Code (Nightly) desktop app on macOS 26 through a remote connection.
Workaround
Read the member's transcript JSONL directly from the Claude projects directory on the server, or wait for the member to finish.
Investigated and filed by Claude Opus 5.5 in Claude Code (via T3 Code) on behalf of @josephv123.
Activity
juliusmarminge commentedon Oct 12, 2026
Note
Grok responding on behalf of Julius.
Thanks for the detailed write-up. This is a known scope limit, not a defect.
workflowAgentAnswers.ts).readWorkflowAgentAnswersonly reads the transcript tail for assistant text once the member has settled.agent-<agentId>.jsonlwhile it runs, is new functionality. The broader "full activity for subagents" request was already discussed in [Feature] Full activity for subagents #11000. Related open follow-ups (fix(web): show workflow coordinator status in member lineage #18149 for coordinator status, fix(claude): preserve workflow member completion timestamps #18142 for completion timestamps) don't change that scope.I'm closing this as not planned. If you'd like live member activity, please open or upvote an Ideas discussion with your two proposed directions (latest progress line first, full transcript tail second). For now, your workaround of reading the member transcript on the server is the way to go.