Missing platform registrations causing KeyErrors
NousResearch/hermes-agent ยท cluster 3511 ยท gateway
Data as of
Nothing open on GitHub. Fix merged in #3583. Check it covers your case.
The short answer
- Known?
- Yes. 10 related items grouped here, 3 issues already closed.
- Fix event
- A fix was merged to main in PR #3583. Check it covers your case. No release data is tracked.
- Tracker
- The maintainers' tracker marks this
unresolved. That is separate from the fix event. - Still open
- Nothing open on GitHub.
Multiple platforms (SMS/Twilio, webhook, Mattermost, Matrix, DingTalk) are absent from the PLATFORMS registry or toolset registration, causing KeyErrors and configuration failures at runtime. Members include both bug reports and proposed fixes for these missing registrations.
Open issues0
Open PRs0
Fixes on record
-
#3583 fix: add missing mattermost/matrix/dingtalk toolsets + platform consistency tests (salvage #3512)
files:
hermes_cli/skills_config.py,hermes_cli/tools_config.py,tests/hermes_cli/test_tools_config.py,toolsets.py -
#4660 fix: webhook platform support โ skip home channel prompt, disable tool progress (salvage #4363)
files:
gateway/run.py,hermes_cli/skills_config.py,hermes_cli/tools_config.py,toolsets.pyShow the diff
-
gateway/run.py@@ -2449,7 +2449,8 @@ async def _handle_message_with_agent(self, event, source, _quick_key: str): ) # One-time prompt if no home channel is set for this platform - if not history and source.platform and source.platform != Platform.LOCAL: + # Skip for webhooks - they deliver directly to configured targets (github_comment, etc.) + if not history and source.platform and source.platform != Platform.LOCAL and source.platform != Platform.WEBHOOK: platform_name = source.platform.value env_key = f"{platform_name.upper()}_HOME_CHANNEL" if not os.getenv(env_key): @@ -5356,7 +5357,10 @@ async def _run_agent( or os.getenv("HERMES_TOOL_PROGRESS_MODE") or "all" ) - tool_progress_enabled = progress_mode != "off" + # Disable tool progress for webhooks - they don't support message editing, + # so each progress line would be sent as a separate message. + from gateway.config import Platform + tool_progress_enabled = progress_mode != "off" and source.platform != Platform.WEBHOOK # Queue for progress messages (thread-safe) progress_queue = queue.Queue() if tool_progress_enabled else None -
hermes_cli/skills_config.py@@ -30,6 +30,7 @@ "dingtalk": "๐ฌ DingTalk", "feishu": "๐ชฝ Feishu", "wecom": "๐ฌ WeCom", + "webhook": "๐ Webhook", } # โโโ Config Helpers โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ -
hermes_cli/tools_config.py@@ -150,6 +150,7 @@ def _get_plugin_toolset_keys() -> set: "wecom": {"label": "๐ฌ WeCom", "default_toolset": "hermes-wecom"}, "api_server": {"label": "๐ API Server", "default_toolset": "hermes-api-server"}, "mattermost": {"label": "๐ฌ Mattermost", "default_toolset": "hermes-mattermost"}, + "webhook": {"label": "๐ Webhook", "default_toolset": "hermes-webhook"}, } -
toolsets.py@@ -369,10 +369,16 @@ "includes": [] }, + "hermes-webhook": { + "description": "Webhook toolset - receive and process external webhook events", + "tools": _HERMES_CORE_TOOLS, + "includes": [] + }, + "hermes-gateway": { "description": "Gateway toolset - union of all messaging platform tools", "tools": [], - "includes": ["hermes-telegram", "hermes-discord", "hermes-whatsapp", "hermes-slack", "hermes-signal", "hermes-homeassistant", "hermes-email", "hermes-sms", "hermes-mattermost", "hermes-matrix", "hermes-dingtalk", "hermes-feishu", "hermes-wecom"] + "includes": ["hermes-telegram", "hermes-discord", "hermes-whatsapp", "hermes-slack", "hermes-signal", "hermes-homeassistant", "hermes-email", "hermes-sms", "hermes-mattermost", "hermes-matrix", "hermes-dingtalk", "hermes-feishu", "hermes-wecom", "hermes-webhook"] } }
-
5 PRs closed without merging
From the close comments: done elsewhere 3 ยท merged via another change 1 ยท superseded by another PR 1
-
#3512 fix: mattermost configuration parsing bugs ยท merged via another change โ
#3583 -
#3775 fix(gateway): register webhook platform and toolset to fix KeyError on agent runs ยท done elsewhere โ
e0b2bdb,#4660,#4363 -
#9967 fix: add SMS to PLATFORMS registry to fix KeyError on inbound message (#9789) ยท done elsewhere โ
a696bce -
#13833 fix(platforms): add missing SMS platform to PLATFORMS registry ยท superseded by another PR โ
a696bce -
#14112 fix(cli): register sms platform toolset ยท done elsewhere โ
a696bce
Closed issues ยท 3
How this cluster was grouped
-
Link evidence (
partly structural links): some members are connected by structural evidence (shared changed files, or a closing/superseded reference); the rest are joined by an automated relevance judgement over their text. - Members outside that structural core may belong to a different underlying problem.
-
Pairwise link density
0.18: the share of item pairs that carry a link, counting a structural link in full and a relevance-only link at 0.36.1.00means every pair is linked.
Pick up a Lab task
Check whether a fix covers the open issues here, with your own agent. Bring back evidence for maintainers.
Open the Lab