{"repo":"NousResearch/hermes-agent","public_id":"9843","display_label":"Telegram bot token format validation at gateway setup","summary":"These issues and pull requests concern adding or fixing validation of the Telegram bot token format during the gateway setup process. Two fix PRs and one bug report address the same specific validation gap.","subsystem":null,"counts":{"members":3,"open_issues":0,"open_issues_distinct":0,"open_prs":0,"closed_issues":1,"merged_prs":1,"attempt_prs":1},"landed_fix":{"status":"merged_to_main","basis":"structural","pr":10613,"merged_at":"2026-04-16T00:54:20+00:00"},"resolution":{"state":"unresolved","by":null},"freshness":{"state":"stale","last_verified_at":"2026-04-16T00:54:20+00:00","is_stale":true},"grouping":{"backbone":"STRUCTURAL_SPANNING","link_density":0.6666666666666666},"fix_edges":[{"issue_number":9843,"pr_number":10613,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false,"pr_merged_at":"2026-04-16T00:54:20+00:00"}],"members":[{"kind":"issue","number":9843,"title":"bug: gateway setup does not validate Telegram bot token format","url":null,"state":"closed"},{"kind":"pr","number":9964,"title":"fix: validate Telegram bot token format during gateway setup (#9843)","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#10613","number":10613}],"category":"merged_via","implication":"superseded"},"merged":false},{"kind":"pr","number":10613,"title":"fix: validate Telegram bot token format during gateway setup (#9964)","url":null,"state":"merged","close_reason":{"category":"merged"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["hermes_cli/setup.py"],"fix_hunks":[{"file":"hermes_cli/setup.py","hunks":["@@ -1611,9 +1611,19 @@ def _setup_telegram():\n             return\n \n     print_info(\"Create a bot via @BotFather on Telegram\")\n-    token = [redacted:secret-assignment]\"Telegram bot token\", password=True)\n-    if not token:\n-        return\n+    import re\n+\n+    while True:\n+        token = [redacted:secret-assignment]\"Telegram bot token\", password=True)\n+        if not token:\n+            return\n+        if not re.match(r\"^\\d+:[A-Za-z0-9_-]{30,}$\", token):\n+            print_error(\n+                \"Invalid token format. Expected: <numeric_id>:<alphanumeric_hash> \"\n+                \"(e.g., 123456789:ABCdefGHI-jklMNOpqrSTUvwxYZ)\"\n+            )\n+            continue\n+        break\n     save_env_value(\"TELEGRAM_BOT_TOKEN\", token)\n     print_success(\"Telegram token saved\")\n \n"]}]}],"trust":{"default_tier":"verified","includes_suggested":false}}