From 6999bcdb5704d2de1bcdad8894cec2e14e0e488b Mon Sep 17 00:00:00 2001 From: scott Date: Wed, 8 Apr 2026 19:58:54 -0400 Subject: [PATCH] Close TCP connection after synthesis so HA receives FIN and unblocks disconnect() was a no-op in the base class; writer.close() was never called, leaving HA waiting for a TCP FIN that never arrived. Co-Authored-By: Claude Sonnet 4.6 --- server.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/server.py b/server.py index a28bb8a..6c8c262 100644 --- a/server.py +++ b/server.py @@ -83,6 +83,13 @@ class KokoroEventHandler(AsyncEventHandler): self.config = config self.executor = executor + async def disconnect(self) -> None: + self.writer.close() + try: + await self.writer.wait_closed() + except Exception: + pass + async def handle_event(self, event: Event) -> bool: if Describe.is_type(event.type): await self.write_event(self.wyoming_info.event())