From 84de6aacfc1657b828e7ae5aa04bfa70e0153ec8 Mon Sep 17 00:00:00 2001 From: Denis Shulyaka Date: Sun, 10 Aug 2025 23:41:37 +0300 Subject: [PATCH] Remove native field from conversation chatlog delta listeners (#150389) --- homeassistant/components/conversation/chat_log.py | 7 ++++++- tests/components/conversation/test_chat_log.py | 3 ++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/homeassistant/components/conversation/chat_log.py b/homeassistant/components/conversation/chat_log.py index b5348e50b5c..7d842b3c562 100644 --- a/homeassistant/components/conversation/chat_log.py +++ b/homeassistant/components/conversation/chat_log.py @@ -342,7 +342,12 @@ class ChatLog: name=f"llm_tool_{tool_call.id}", ) if self.delta_listener: - self.delta_listener(self, delta) # type: ignore[arg-type] + if filtered_delta := { + k: v for k, v in delta.items() if k != "native" + }: + # We do not want to send the native content to the listener + # as it is not JSON serializable + self.delta_listener(self, filtered_delta) continue # Starting a new message diff --git a/tests/components/conversation/test_chat_log.py b/tests/components/conversation/test_chat_log.py index 8fefb41475a..a5ed3146ddc 100644 --- a/tests/components/conversation/test_chat_log.py +++ b/tests/components/conversation/test_chat_log.py @@ -568,7 +568,8 @@ async def test_add_delta_content_stream( """Yield deltas.""" for d in deltas: yield d - expected_delta.append(d) + if filtered_delta := {k: v for k, v in d.items() if k != "native"}: + expected_delta.append(filtered_delta) captured_deltas = []