From ac64fd4cf42f9dc1087e65a819dc94f271283a93 Mon Sep 17 00:00:00 2001 From: twentyOne2x Date: Wed, 1 Jul 2026 00:47:36 +0200 Subject: [PATCH] Tag Leo auto-resume poll requests (#28) --- telegram/bot.py | 1 + telegram/http_chat_proxy.py | 5 +++++ tests/test_telegram_leo_x402_bridge.py | 18 ++++++++++++++++++ 3 files changed, 24 insertions(+) diff --git a/telegram/bot.py b/telegram/bot.py index b1b5996..3d7deda 100644 --- a/telegram/bot.py +++ b/telegram/bot.py @@ -831,6 +831,7 @@ async def _poll_smart_research_auto_resume( message_id=msg.message_id, username=username, include_synthesis=True, + auto_resume_poll=True, ) try: status, proxy_body, proxy_reply = await post_chat_proxy( diff --git a/telegram/http_chat_proxy.py b/telegram/http_chat_proxy.py index 72d9549..8d16904 100644 --- a/telegram/http_chat_proxy.py +++ b/telegram/http_chat_proxy.py @@ -306,6 +306,7 @@ def build_smart_research_proxy_payload( include_synthesis: bool = True, work_order_id: str | None = None, original_research_goal: str | None = None, + auto_resume_poll: bool = False, ) -> dict[str, Any]: """Build the no-secret Telegram payload for Leo smart research.""" payload = build_chat_proxy_payload( @@ -331,6 +332,10 @@ def build_smart_research_proxy_payload( payload["work_order_id"] = work_order_id if original_research_goal: payload["original_research_goal"] = original_research_goal + if auto_resume_poll: + metadata = payload.setdefault("metadata", {}) + if isinstance(metadata, dict): + metadata["auto_resume_poll"] = True return payload diff --git a/tests/test_telegram_leo_x402_bridge.py b/tests/test_telegram_leo_x402_bridge.py index 810b190..e6fab2f 100644 --- a/tests/test_telegram_leo_x402_bridge.py +++ b/tests/test_telegram_leo_x402_bridge.py @@ -118,6 +118,24 @@ def test_smart_research_payload_is_no_spend_by_default(): assert "secret" not in str(payload).lower() +def test_smart_research_payload_marks_auto_resume_poll_without_secret_material(): + payload = build_smart_research_proxy_payload( + research_goal="Find x402 evidence", + source="telegram", + agent="leo", + chat_id=123, + message_id=456, + username="tester", + auto_resume_poll=True, + ) + + assert payload["metadata"]["auto_resume_poll"] is True + assert payload["allow_paid_execution"] is False + assert "approval_ref" not in payload + assert "token" not in str(payload).lower() + assert "secret" not in str(payload).lower() + + def test_smart_research_payload_can_resume_paid_work_order_without_secret_material(): payload = build_smart_research_proxy_payload( research_goal="what are the current discussions about MetaDAO Ranger Finance on Twitter?",