From 8c55b40b9f383c5e11217cbd6234483a63f597aa Mon Sep 17 00:00:00 2001 From: andienguyen-ecoligo Date: Sat, 21 Feb 2026 12:38:24 -0500 Subject: [PATCH] fix(qq): make start() long-running per base channel contract QQ channel's start() created a background task and returned immediately, violating the base Channel contract which specifies start() should be "a long-running async task". This caused the gateway to exit prematurely when QQ was the only enabled channel. Now directly awaits _run_bot() to stay alive like other channels. Fixes #894 --- nanobot/channels/qq.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nanobot/channels/qq.py b/nanobot/channels/qq.py index 16cbfb8..a940a75 100644 --- a/nanobot/channels/qq.py +++ b/nanobot/channels/qq.py @@ -71,8 +71,8 @@ class QQChannel(BaseChannel): BotClass = _make_bot_class(self) self._client = BotClass() - self._bot_task = asyncio.create_task(self._run_bot()) logger.info("QQ bot started (C2C private message)") + await self._run_bot() async def _run_bot(self) -> None: """Run the bot connection with auto-reconnect."""