mirror of
https://github.com/windmill-labs/windmill.git
synced 2026-09-21 00:02:30 +00:00
A tool row's call is read back from the tool's own job, which an MCP tool and a provider-native one never have — they run inside the agent's job — so those rows could only ever be a summary line. Thinking had nowhere at all: it is streamed and never returned in a response body. `flow_conversation_message` now carries `tool_arguments`, `tool_result` and `reasoning`, written for exactly the parts of a turn no job holds: an MCP call, a web search's sources, and the thinking behind an answer or behind a tool call. `ParsedResponse::Text` gains the reasoning the parsers already had in hand; each SSE parser accumulates it beside the answer text. Flow chat renders both through the components the session chat uses, and paces them with the same `TypewriterReveal`: the worker's events arrive in bursts, so display is decoupled from arrival — measured over one 1000-character answer, 54 growth steps of ~18 characters where it was 15 of ~54. The row is built from the reveal rather than once per chunk, which is also what lets thinking survive arriving in the same chunk as the tool call that ends it. Enabling chat mode now turns streaming on, next to the memory it already sets: without it the chat has no stream to read and a turn shows nothing until it ends. The answer footer renders only under an actual answer, carries no margin of its own, and drops the day from today's timestamps. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QN7VboDEm9HAB1t4sMxMdE