Connectors reach installs with a saved toolset list (connections toolset auto-enable) - #108142
Closed
alt-glitch wants to merge 1 commit into
Closed
alt-glitch wants to merge 1 commit into
alt-glitch wants to merge 1 commit into
Conversation
…m list Installs that saved `hermes tools` (or toggled anything in the desktop Toolsets UI) before 2026-09-10 carry a frozen `platform_toolsets.<platform>` list. `connections` (shipped in #106842) is absent from that list, and absence reads as "declined", so `manage_connections` is stripped from every schema on that platform. The portal entitlement gate never gets a vote. `_RECENTLY_SHIPPED_TOOLSETS` exists for exactly this: a toolset named there is turned on for platforms whose saved list predates it, and a recorded decline in `known_builtin_toolsets` still wins. Same shape as `bfl` in 97c6a18; empty the set in the release after the one that ships this, as 76e306c did. Fresh installs and composite (`[hermes-cli]`) users were never affected, which is why the onboarding rehearsal did not show it.
Contributor
૮ >ﻌ< ა ci reviewran on 7db0df7 — fix(tools): connections toolset reaches installs with a save ❌ Job failuresPython tests / Run tests · View jobJob Python tests / Run tests failed.
|
alt-glitch
marked this pull request as draft
September 11, 2026 11:05
Contributor
Author
|
Superseded by #108207. Sid's call: the |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Installs that saved their toolset list before 2026-09-10 now get the
manage_connectionstool. Until this change, those installs never saw it, even when signed in to a paid Nous org.The problem
hermes tools(and the desktop Toolsets UI) writes an explicitplatform_toolsets.<platform>list toconfig.yaml. Nothing ever adds to that list. A toolset that ships after the save is read as "the user declined it" and stays off.connections(the toolset that carriesmanage_connections, #106842) shipped on 2026-09-10 and is not in any release tag yet. Every install with a saved list from before that date has the tool stripped from its schema. The Nous entitlement check runs after the toolset list and never gets a vote.Fresh installs and users on the
[hermes-cli]composite were never affected. That is why the onboarding rehearsal did not show it.flowchart LR A[config.yaml<br/>platform_toolsets.cli<br/>saved before 2026-09-10] --> B[_get_platform_tools] B --> C{connections<br/>in saved list?} C -- no --> D[toolset off] D --> E[manage_connections<br/>absent from schema] E --> F[entitlement check<br/>never runs]What the user experiences
platform_toolsetslist from before 2026-09-10, signed in to a paid orgmanage_connectionsabsent. Agent says the tool does not exist.statusreturns the connector list.hermes toolsknown_builtin_toolsetsand still wins)agent.disabled_toolsets: [connections][hermes-cli]compositecheck_fngate, no change)What changes
One line in
hermes_cli/tools_config.py:_enable_recently_shipped_toolsetsalready exists for this case. It turns a named toolset on for any platform whose saved list predates it, and honours a recorded decline. Same shape asbflin 97c6a18 (added) and 76e306c (emptied one release later).No migration step. The set is read at toolset-resolution time, so it applies on the next process start with no config write and no
hermes updaterun.Follow-up required
Empty
_RECENTLY_SHIPPED_TOOLSETSin the release after the one that ships this. Once a released build has put Connections on the checklist, a user who unchecks it writes a config identical to one saved before the toolset existed, and leaving the entry in would turn their opt-out back on. Tracked in the comment above the constant.Tests
tests/hermes_cli/test_tools_config.pyalready carries five invariant tests behind@_requires_recently_shipped(they skip when the set is empty). This change un-skips them.origin/main8c74118)Also run:
tests/tools/test_connections_tool.py,tests/tools/test_connector_bridge_wiring.py(59 passed),tests/test_tui_gateway_server.py(652 passed, 1 pre-existing failure intest_model_options_preserves_canonical_custom_row_after_agent_initthat fails identically on base).Live repro
Temp
HERMES_HOME, realauth.jsonfrom a paid org,config.yamlwithplatform_toolsets.cli: [file, terminal, web]andknown_builtin_toolsets.cliwithoutconnections. Same prompt tohermes chat -qon both trees.tool_search(no match)TOOL NOT AVAILABLE: manage_connectionsmanage_connections {"action": "status"}CONNECTED: googlecalendar, slack, linear, ...Third home with
connectionslisted inknown_builtin_toolsets.cli(a recorded decline): toolset stays off on this branch.