From 455642a39cff82d1e885788ee7488c2e5252fa3b Mon Sep 17 00:00:00 2001 From: Osamaali313 Date: Wed, 15 Jul 2026 23:33:15 +0300 Subject: [PATCH] fix(streaming): add missing f-prefix to phase_id on agent pause Three finish() calls pass phase_id="{self._context.iteration}-final" without the f-string prefix, so the literal text "{self._context.iteration}-final" is sent instead of the interpolated "-final". phase_id becomes the emitted SSE chunk's id (OpenAIStreamingGenerator.finish -> _create_base_chunk), so the terminal chunk on every clarification/answer pause ships a constant, invalid id. The correct sibling call in base_agent.py (the finally-block finish) already uses f"{self._context.iteration}-final", proving intent. Add the f prefix at the three sites (base_agent.py and dialog_agent.py x2). --- sgr_agent_core/agents/dialog_agent.py | 4 ++-- sgr_agent_core/base_agent.py | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/sgr_agent_core/agents/dialog_agent.py b/sgr_agent_core/agents/dialog_agent.py index b843863a..04f6998b 100644 --- a/sgr_agent_core/agents/dialog_agent.py +++ b/sgr_agent_core/agents/dialog_agent.py @@ -62,7 +62,7 @@ async def _after_action_phase(self, action_tool: BaseTool, result: str) -> None: self.logger.info("\n⏸️ Research paused - please answer questions") self._context.state = AgentStatesEnum.WAITING_FOR_CLARIFICATION self.streaming_generator.finish( - phase_id="{self._context.iteration}-final", content=self._context.execution_result + phase_id=f"{self._context.iteration}-final", content=self._context.execution_result ) self._context.clarification_received.clear() await self._context.clarification_received.wait() @@ -73,7 +73,7 @@ async def _after_action_phase(self, action_tool: BaseTool, result: str) -> None: self.logger.info("\n💬 Dialog shared - agent waiting for response") self._context.state = AgentStatesEnum.WAITING_FOR_CLARIFICATION self.streaming_generator.finish( - phase_id="{self._context.iteration}-final", content=self._context.execution_result + phase_id=f"{self._context.iteration}-final", content=self._context.execution_result ) self._context.clarification_received.clear() await self._context.clarification_received.wait() diff --git a/sgr_agent_core/base_agent.py b/sgr_agent_core/base_agent.py index 6c3f0363..6abd8d9e 100644 --- a/sgr_agent_core/base_agent.py +++ b/sgr_agent_core/base_agent.py @@ -246,7 +246,7 @@ async def _execution_step(self): if isinstance(action_tool, ClarificationTool): self.logger.info("\n⏸️ Research paused - please answer questions") self.streaming_generator.finish( - phase_id="{self._context.iteration}-final", content=self._context.execution_result + phase_id=f"{self._context.iteration}-final", content=self._context.execution_result ) self._context.clarification_received.clear() await self._context.clarification_received.wait()