fix(skills): platform-disabled skills still appear in <available_skills> + unify all resolution sites (#46201) - #46236
Merged
kshitijk4poor merged 2 commits intoJun 14, 2026
Conversation
…ousResearch#46201) build_skills_system_prompt() already resolved _platform_hint but called get_disabled_skill_names() with no argument, so the resolved platform never reached the filter and the prompt cache_key varied by platform while the disabled set did not. Pass _platform_hint or None. get_disabled_skill_names() also fully ignored the global 'disabled' list once a platform-specific list was found. Return the union (global | platform) so a globally-disabled skill stays disabled on every platform. Salvaged from NousResearch#46203 by @iborazzi; the unrelated apps/shared/tsconfig.json ES2023 bump is intentionally dropped (one concern per PR).
…ites The platform-disabled fix landed only in agent.skill_utils.get_disabled_skill_names (the system-prompt path). Two sibling resolvers still used the old replace-not-union semantics, so the same skill could be hidden from the <available_skills> prompt yet reported enabled elsewhere: - hermes_cli/skills_config.get_disabled_skills (the 'hermes skills config' UI) returned only the platform list, so a globally-disabled skill showed as enabled (unchecked) on any platform with a platform_disabled entry. - tools/skills_tool._is_skill_disabled (gates whether skill_view loads a skill) ignored the global list when a platform list existed, so a globally-disabled skill could still be loaded on such a platform. Both now union the global list with the platform list, matching get_disabled_skill_names. An explicit empty platform list no longer re-enables a globally-disabled skill — global disables hold on every platform (NousResearch#46201). Also: fix the now-stale get_disabled_skill_names docstring and drop a stray blank line. Regression tests added for both sites (proven to fail on the old replace semantics).
kshitijk4poor
enabled auto-merge
June 14, 2026 17:28
This was referenced Jun 14, 2026
T02200059
pushed a commit
to T02200059/hermes-agent
that referenced
this pull request
Jun 18, 2026
…bled-skills-union fix(skills): platform-disabled skills still appear in <available_skills> + unify all resolution sites (NousResearch#46201)
waefrebeorn
pushed a commit
to waefrebeorn/slermes
that referenced
this pull request
Jul 2, 2026
…bled-skills-union fix(skills): platform-disabled skills still appear in <available_skills> + unify all resolution sites (NousResearch#46201)
Methodician
added a commit
to Methodician/hermes-agent
that referenced
this pull request
Jul 4, 2026
…bled-skills-union fix(skills): platform-disabled skills still appear in <available_skills> + unify all resolution sites (NousResearch#46201)
habarmc1223-sudo
pushed a commit
to habarmc1223-sudo/hermes-agent-fluxmem
that referenced
this pull request
Jul 8, 2026
…bled-skills-union fix(skills): platform-disabled skills still appear in <available_skills> + unify all resolution sites (NousResearch#46201)
santhreal
pushed a commit
to santhreal/hermes-agent
that referenced
this pull request
Jul 13, 2026
…bled-skills-union fix(skills): platform-disabled skills still appear in <available_skills> + unify all resolution sites (NousResearch#46201)
Gravezzz
pushed a commit
to Gravezzz/hermes-agent
that referenced
this pull request
Jul 21, 2026
…bled-skills-union fix(skills): platform-disabled skills still appear in <available_skills> + unify all resolution sites (NousResearch#46201)
leewenjie
pushed a commit
to leewenjie/hermes-agent
that referenced
this pull request
Aug 7, 2026
…bled-skills-union fix(skills): platform-disabled skills still appear in <available_skills> + unify all resolution sites (NousResearch#46201)
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.
Fixes #46201. Salvages the fix from #46203 by @iborazzi (authorship preserved as
commit 1) and completes it across all sibling resolution sites (commit 2).
The bug
hermes skills configdisables skills per-platform, but the platform config neverreached the
<available_skills>prompt, so disabled skills still appeared and theagent's "you MUST load it" rule tried to load them.
Commit 1 (@iborazzi, salvaged from #46203)
build_skills_system_prompt()resolved_platform_hint(and keyed the promptcache on it) but called
get_disabled_skill_names()with no argument, so theplatform never reached the filter. → pass
_platform_hint or None.get_disabled_skill_names()discarded the globaldisabledlist once aplatform-specific list existed. → return the union
global | platform.The unrelated
apps/shared/tsconfig.jsonES2023 bump bundled in #46203 isintentionally dropped (one concern per PR).
Commit 2 (follow-up) — fix the whole bug class
The same global-vs-platform resolution was duplicated in two more places that
#46203 left on the old replace-not-union semantics, leaving the codebase
inconsistent (a skill hidden from the prompt could still load / show enabled):
hermes_cli/skills_config.get_disabled_skills— thehermes skills configUIshowed a globally-disabled skill as enabled on any platform with a
platform_disabledentry.tools/skills_tool._is_skill_disabled— theskill_viewgate would still loada globally-disabled skill on such a platform.
Both now union with the global list, matching
get_disabled_skill_names. Anexplicit empty platform list no longer re-enables a globally-disabled skill —
global disables hold on every platform. Stale docstring fixed; regression tests
added for both sites (proven to fail on the old replace semantics).
Verification
tests/{hermes_cli/test_skills_config,agent/test_prompt_builder,tools/test_skills_tool}.py— 251 passed, 1 skipped.