Two bugs in the save/load roundtrip for platform_toolsets: 1. _save_platform_tools preserved composite toolset entries (hermes-cli, hermes-telegram, etc.) because they weren't in configurable_keys. These composites include ALL _HERMES_CORE_TOOLS, so having hermes-cli in the saved list alongside individual keys negated any disables — the subset check always found the disabled toolset's tools via the composite entry. Fix: also filter out known TOOLSETS keys from preserved entries. Only truly unknown entries (MCP server names, custom entries) are kept. 2. _get_platform_tools used reverse subset inference to determine which configurable toolsets were enabled. This is inherently broken when tools appear in multiple toolsets (e.g. HA tools in both the homeassistant toolset and _HERMES_CORE_TOOLS). Fix: when the saved list contains explicit configurable keys (meaning the user has configured this platform), use direct membership instead of subset inference. The fallback path still handles legacy configs that only have a composite entry like hermes-cli.
55 KiB
55 KiB