Skip to content

fix: make /skills slash command available in desktop and dashboard - #60550

Open
AIalliAI wants to merge 1 commit into
NousResearch:mainfrom
AIalliAI:fix/skills-cli-only
Open

fix: make /skills slash command available in desktop and dashboard#60550
AIalliAI wants to merge 1 commit into
NousResearch:mainfrom
AIalliAI:fix/skills-cli-only

Conversation

@AIalliAI

@AIalliAI AIalliAI commented Jul 7, 2026

Copy link
Copy Markdown
Contributor

Remove cli_only=True from the /skills CommandDef so the
pending, approve, reject, diff, and approval subcommands are
accessible in gateway sessions (Desktop App, Dashboard) as well
as CLI.

The existing gateway_config_gate="skills.write_approval" still
gates the command behind the config flag.

Files changed

  • hermes_cli/commands.py: -1 line (remove cli_only=True)

Closes #60442

@alt-glitch alt-glitch added type/bug Something isn't working comp/cli CLI entry point, hermes_cli/, setup wizard tool/skills Skills system (list, view, manage) P3 Low — cosmetic, nice to have labels Jul 7, 2026
@AIalliAI
AIalliAI force-pushed the fix/skills-cli-only branch 2 times, most recently from af58e40 to a6bd67d Compare July 8, 2026 17:07
@AIalliAI
AIalliAI force-pushed the fix/skills-cli-only branch from 7e3fb97 to 5f5c1e4 Compare July 11, 2026 02:56

@teknium1 teknium1 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for pursuing the skill-write approval workflow. The current one-line registry change is not sufficient for the reported Desktop issue and changes the gateway gate semantics.

Problems

  • hermes_cli/commands.py:178: removing cli_only=True makes /skills unconditionally gateway-available because _is_gateway_available() returns early for non-CLI-only commands at hermes_cli/commands.py:449-453; skills.write_approval is no longer consulted for visibility.
  • Desktop still rejects /skills: it is deliberately marked as a settings-owned unavailable command in apps/desktop/src/lib/desktop-slash-commands.ts:221, and execution is blocked at lines 291-299. This does not provide the sidebar pending/diff/approve/reject flow requested in #60442.
  • Dashboard does not require this change: tui_gateway/server.py:11762-11764 already catalogs commands without filtering cli_only.

Suggested changes

  • Keep cli_only=True to preserve the existing config-gated gateway behavior.
  • Re-scope the change to a Desktop Skills-sidebar review surface, with targeted tests for pending entries, diff rendering, approval, and rejection.
  • Drop the unrelated scripts/release.py and approval-test changes.

Automated hermes-sweeper review.

Comment thread hermes_cli/commands.py Outdated
@@ -175,7 +175,7 @@ class CommandDef:
CommandDef("toolsets", "List available toolsets", "Tools & Skills",
cli_only=True),
CommandDef("skills", "Search, install, inspect, or manage skills",
"Tools & Skills", cli_only=True,
"Tools & Skills",

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Removing cli_only=True bypasses skills.write_approval: _is_gateway_available() returns True for every non-CLI-only command at hermes_cli/commands.py:449 before it reaches the config-gate branch. Please retain cli_only=True; the existing gate already makes this command gateway-dispatchable when enabled.

@teknium1 teknium1 added sweeper:risk-security-boundary Sweeper risk: may affect sandboxing, auth, credentials, or sensitive data sweeper:risk-compatibility Sweeper risk: may break existing users, config, migrations, defaults, or upgrades sweeper:blast-moderate Sweeper blast radius: moderate — a subsystem or single platform labels Jul 15, 2026
…, keep cli_only=True

Address PR NousResearch#60550 review comments correctly:

- Keep cli_only=True on the /skills CommandDef (revert the incorrect
  removal) — _is_gateway_available() needs cli_only to route through
  gateway_config_gate=skills.write_approval for proper visibility
  gating.
- Remove /skills from NO_DESKTOP_SURFACE.settings in desktop slash
  commands so Desktop no longer blocks it as a settings-owned command.
- Add /skills as an exec() entry in DESKTOP_COMMAND_SPECS with args:true
  so the typed subcommands (pending, approve, reject, diff, approval) work
  naturally in the desktop slash palette.
- Update targeted tests: assert /skills resolves as exec surface, is
  suggested, is executable, has no unavailable message, and args is true.

The existing gateway_config_gate="skills.write_approval" continues to
gate the command behind the config flag — users must explicitly enable
skills.write_approval for /skills to surface in gateway sessions.

Closes NousResearch#60442
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

comp/cli CLI entry point, hermes_cli/, setup wizard P3 Low — cosmetic, nice to have sweeper:blast-moderate Sweeper blast radius: moderate — a subsystem or single platform sweeper:risk-compatibility Sweeper risk: may break existing users, config, migrations, defaults, or upgrades sweeper:risk-security-boundary Sweeper risk: may affect sandboxing, auth, credentials, or sensitive data tool/skills Skills system (list, view, manage) type/bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

/skills pending command is cli_only — unavailable in desktop and dashboard

3 participants