From 64a50ed50ae4cc9dc8495639311e5be4a6de3ab8 Mon Sep 17 00:00:00 2001 From: teknium1 <127238744+teknium1@users.noreply.github.com> Date: Sun, 7 Jun 2026 20:30:55 -0700 Subject: [PATCH] fix(a2a): default the a2a toolset OFF (opt-in), like spotify The a2a client tools are registered unconditionally by the plugin, but a newly-registered plugin toolset defaults to ENABLED for every platform until the user has seen it in 'hermes tools'. That force-injected 'a2a' into every agent's enabled_toolsets, leaking 3 tool schemas to all users and breaking tests that assert exact toolset membership (test_api_server_toolset::test_create_agent_respects_config_override). Add 'a2a' to _DEFAULT_OFF_TOOLSETS so it stays opt-in (user enables via 'hermes tools'), matching the spotify precedent. The inbound platform adapter is already opt-in (only instantiated when the a2a platform is enabled); this aligns the outbound client tools with the same posture. --- hermes_cli/tools_config.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hermes_cli/tools_config.py b/hermes_cli/tools_config.py index 4d3a8c47530a6..7be692fcad690 100644 --- a/hermes_cli/tools_config.py +++ b/hermes_cli/tools_config.py @@ -152,7 +152,7 @@ def gui_toolset_label(label: str) -> str: # `hermes tools` → X (Twitter) Search setup walks users through credential # setup. The tool's check_fn means the schema still won't appear to the # model if the credential later goes missing or expires. -_DEFAULT_OFF_TOOLSETS = {"homeassistant", "spotify", "discord", "discord_admin", "video", "video_gen", "x_search"} +_DEFAULT_OFF_TOOLSETS = {"homeassistant", "spotify", "discord", "discord_admin", "video", "video_gen", "x_search", "a2a"} # Config-only capabilities: they appear in `hermes tools` for provider/API-key