From db0d966a6a201c9490436ab111305bf0ed7fd257 Mon Sep 17 00:00:00 2001 From: agentson Date: Thu, 5 Feb 2026 00:40:31 +0900 Subject: [PATCH] fix: properly close telegram client session to prevent resource leak (issue #52) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adds telegram.close() to finally block to ensure aiohttp session cleanup. Changes: - src/main.py:553 - Add await telegram.close() in shutdown Before: - broker.close() called ✅ - telegram.close() NOT called ❌ - "Unclosed client session" error on shutdown After: - broker.close() called ✅ - telegram.close() called ✅ - Clean shutdown, no resource leak errors Impact: - Eliminates aiohttp resource leak warnings - Proper cleanup of Telegram API connections - No memory leaks in long-running processes Related: - KISBroker.close() already handles broker session - OverseasBroker reuses KISBroker session (no separate close needed) - TelegramClient has separate session that needs cleanup Co-Authored-By: Claude Sonnet 4.5 --- src/main.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main.py b/src/main.py index 48017f0..b9a020f 100644 --- a/src/main.py +++ b/src/main.py @@ -549,7 +549,9 @@ async def run(settings: Settings) -> None: except TimeoutError: pass # Normal — timeout means it's time for next cycle finally: + # Clean up resources await broker.close() + await telegram.close() db_conn.close() logger.info("The Ouroboros rests.")