diff --git a/strix/interface/tui.py b/strix/interface/tui.py index 086701bbe..a8a71cbdc 100644 --- a/strix/interface/tui.py +++ b/strix/interface/tui.py @@ -1477,8 +1477,7 @@ class StrixTUIApp(App): # type: ignore[misc] "id": f"chat_{msg['message_id']}", "data": msg, } - for msg in self.tracer.chat_messages - if msg.get("agent_id") == agent_id + for msg in self.tracer.chat_messages_by_agent.get(agent_id, []) ] agent_data = self.tracer.agents.get(agent_id, {}) diff --git a/strix/telemetry/tracer.py b/strix/telemetry/tracer.py index 3f3ca6c69..eb4c0d7ac 100644 --- a/strix/telemetry/tracer.py +++ b/strix/telemetry/tracer.py @@ -57,6 +57,7 @@ class Tracer: self.agents: dict[str, dict[str, Any]] = {} self.tool_executions: dict[int, dict[str, Any]] = {} self.chat_messages: list[dict[str, Any]] = [] + self.chat_messages_by_agent: dict[str, list[dict[str, Any]]] = {} self.streaming_content: dict[str, str] = {} self.interrupted_content: dict[str, str] = {} @@ -474,6 +475,7 @@ class Tracer: } self.chat_messages.append(message_data) + self.chat_messages_by_agent.setdefault(agent_id, []).append(message_data) self._emit_event( "chat.message", actor={"agent_id": agent_id, "role": role},