From 669c60a6bb1839f6f13085abd86a5eee5abe7f3b Mon Sep 17 00:00:00 2001 From: Teknium Date: Sat, 21 Mar 2026 19:19:26 -0700 Subject: [PATCH] fix: add iteration boundary linebreak to prevent stream concatenation Cherry-picked from PR #2187 by @devorun. Fixes #2177. When streaming is enabled, text before and after tool calls gets concatenated without separation. Adds a paragraph break delta after _execute_tool_calls() so stream consumers insert proper whitespace between iteration boundaries. --- run_agent.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/run_agent.py b/run_agent.py index 9c1b8e727..1074bba33 100644 --- a/run_agent.py +++ b/run_agent.py @@ -6732,6 +6732,9 @@ class AIAgent: _msg_count_before_tools = len(messages) self._execute_tool_calls(assistant_message, messages, effective_task_id, api_call_count) + # Signal iteration boundary to stream consumers to prevent text concatenation + self._fire_stream_delta("\n\n") + # Refund the iteration if the ONLY tool(s) called were # execute_code (programmatic tool calling). These are # cheap RPC-style calls that shouldn't eat the budget.