From 1aa7badb3c7ee0595217b34698a7abe9ad2435fc Mon Sep 17 00:00:00 2001 From: teknium1 Date: Mon, 9 Mar 2026 23:27:19 -0700 Subject: [PATCH] fix: add missing Platform.SIGNAL to toolset mappings, update test + config docs Platform.SIGNAL was missing from default_toolset_map and platform_config_key in gateway/run.py, causing Signal to silently fall back to hermes-telegram toolset (same bug as HomeAssistant, fixed in PR #538). Also updates: - tests/test_toolsets.py: include hermes-signal and hermes-homeassistant in the platform core-tools consistency check - cli-config.yaml.example: document signal and homeassistant platform keys --- cli-config.yaml.example | 14 +++++++++----- gateway/run.py | 2 ++ tests/test_toolsets.py | 2 +- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/cli-config.yaml.example b/cli-config.yaml.example index fb1af78fc..681fa1ff0 100644 --- a/cli-config.yaml.example +++ b/cli-config.yaml.example @@ -402,11 +402,13 @@ agent: # discord: [web, vision, skills, todo] # # If not set, defaults are: -# cli: hermes-cli (everything + cronjob management) -# telegram: hermes-telegram (terminal, file, web, vision, image, tts, browser, skills, todo, cronjob, messaging) -# discord: hermes-discord (same as telegram) -# whatsapp: hermes-whatsapp (same as telegram) -# slack: hermes-slack (same as telegram) +# cli: hermes-cli (everything + cronjob management) +# telegram: hermes-telegram (terminal, file, web, vision, image, tts, browser, skills, todo, cronjob, messaging) +# discord: hermes-discord (same as telegram) +# whatsapp: hermes-whatsapp (same as telegram) +# slack: hermes-slack (same as telegram) +# signal: hermes-signal (same as telegram) +# homeassistant: hermes-homeassistant (same as telegram) # platform_toolsets: cli: [hermes-cli] @@ -414,6 +416,8 @@ platform_toolsets: discord: [hermes-discord] whatsapp: [hermes-whatsapp] slack: [hermes-slack] + signal: [hermes-signal] + homeassistant: [hermes-homeassistant] # ───────────────────────────────────────────────────────────────────────────── # Available toolsets (use these names in platform_toolsets or the toolsets list) diff --git a/gateway/run.py b/gateway/run.py index ffb8e20d2..d5aeec247 100644 --- a/gateway/run.py +++ b/gateway/run.py @@ -2402,6 +2402,7 @@ class GatewayRunner: Platform.DISCORD: "hermes-discord", Platform.WHATSAPP: "hermes-whatsapp", Platform.SLACK: "hermes-slack", + Platform.SIGNAL: "hermes-signal", Platform.HOMEASSISTANT: "hermes-homeassistant", } @@ -2424,6 +2425,7 @@ class GatewayRunner: Platform.DISCORD: "discord", Platform.WHATSAPP: "whatsapp", Platform.SLACK: "slack", + Platform.SIGNAL: "signal", Platform.HOMEASSISTANT: "homeassistant", }.get(source.platform, "telegram") diff --git a/tests/test_toolsets.py b/tests/test_toolsets.py index 65e19d77c..13c345070 100644 --- a/tests/test_toolsets.py +++ b/tests/test_toolsets.py @@ -136,7 +136,7 @@ class TestToolsetConsistency: def test_hermes_platforms_share_core_tools(self): """All hermes-* platform toolsets should have the same tools.""" - platforms = ["hermes-cli", "hermes-telegram", "hermes-discord", "hermes-whatsapp", "hermes-slack"] + platforms = ["hermes-cli", "hermes-telegram", "hermes-discord", "hermes-whatsapp", "hermes-slack", "hermes-signal", "hermes-homeassistant"] tool_sets = [set(TOOLSETS[p]["tools"]) for p in platforms] # All platform toolsets should be identical for ts in tool_sets[1:]: