Skip to content

fix(skills): platform-disabled skills still appear in <available_skills> + unify all resolution sites (#46201) - #46236

Merged
kshitijk4poor merged 2 commits into
NousResearch:mainfrom
kshitijk4poor:salvage/disabled-skills-union
Jun 14, 2026
Merged

fix(skills): platform-disabled skills still appear in <available_skills> + unify all resolution sites (#46201)#46236
kshitijk4poor merged 2 commits into
NousResearch:mainfrom
kshitijk4poor:salvage/disabled-skills-union

Conversation

@kshitijk4poor

Copy link
Copy Markdown
Collaborator

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 config disables skills per-platform, but the platform config never
reached the <available_skills> prompt, so disabled skills still appeared and the
agent'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 prompt
    cache on it) but called get_disabled_skill_names() with no argument, so the
    platform never reached the filter. → pass _platform_hint or None.
  • get_disabled_skill_names() discarded the global disabled list once a
    platform-specific list existed. → return the union global | platform.

The unrelated apps/shared/tsconfig.json ES2023 bump bundled in #46203 is
intentionally 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 — the hermes skills config UI
    showed a globally-disabled skill as enabled on any platform with a
    platform_disabled entry.
  • tools/skills_tool._is_skill_disabled — the skill_view gate would still load
    a globally-disabled skill on such a platform.

Both now union with the global 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. 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.
  • New union tests confirmed to fail on the old replace-semantics and pass with the fix.
  • ruff clean on all touched files.

iborazzi and others added 2 commits June 14, 2026 22:52
…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
kshitijk4poor enabled auto-merge June 14, 2026 17:28
@kshitijk4poor
kshitijk4poor merged commit fc2b8b3 into NousResearch:main Jun 14, 2026
29 checks passed
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)
@kshitijk4poor
kshitijk4poor deleted the salvage/disabled-skills-union branch August 5, 2026 07:08
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)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug]: Disabled skills still appear in <available_skills> prompt and trigger false loads

2 participants