diff --git a/gateway/run.py b/gateway/run.py index 7475564d5..94c9bfa43 100644 --- a/gateway/run.py +++ b/gateway/run.py @@ -3683,6 +3683,7 @@ class GatewayRunner: session_key = watcher.get("session_key", "") platform_name = watcher.get("platform", "") chat_id = watcher.get("chat_id", "") + thread_id = watcher.get("thread_id", "") notify_mode = self._load_background_notifications_mode() logger.debug("Process watcher started: %s (every %ss, notify=%s)", @@ -3730,7 +3731,8 @@ class GatewayRunner: break if adapter and chat_id: try: - await adapter.send(chat_id, message_text) + send_meta = {"thread_id": thread_id} if thread_id else None + await adapter.send(chat_id, message_text, metadata=send_meta) except Exception as e: logger.error("Watcher delivery error: %s", e) break @@ -3749,7 +3751,8 @@ class GatewayRunner: break if adapter and chat_id: try: - await adapter.send(chat_id, message_text) + send_meta = {"thread_id": thread_id} if thread_id else None + await adapter.send(chat_id, message_text, metadata=send_meta) except Exception as e: logger.error("Watcher delivery error: %s", e) diff --git a/tools/terminal_tool.py b/tools/terminal_tool.py index 27c405dee..fc22bf3f6 100644 --- a/tools/terminal_tool.py +++ b/tools/terminal_tool.py @@ -1066,6 +1066,7 @@ def terminal_tool( "session_key": session_key, "platform": os.getenv("HERMES_SESSION_PLATFORM", ""), "chat_id": os.getenv("HERMES_SESSION_CHAT_ID", ""), + "thread_id": os.getenv("HERMES_SESSION_THREAD_ID", ""), }) return json.dumps(result_data, ensure_ascii=False)