Skip to content

fix(dashboard): enable Discord-specific toolsets from web UI - #65361

Merged
teknium1 merged 1 commit into
NousResearch:mainfrom
shannonsands:shannonsands/ns-525-discord-toolsets
Jul 16, 2026
Merged

fix(dashboard): enable Discord-specific toolsets from web UI#65361
teknium1 merged 1 commit into
NousResearch:mainfrom
shannonsands:shannonsands/ns-525-discord-toolsets

Conversation

@shannonsands

@shannonsands shannonsands commented Jul 16, 2026

Copy link
Copy Markdown
Contributor

What does this PR do?

Fixes the dashboard Toolsets UI so Discord-specific capabilities can actually be enabled.

Discord (read/participate) and Discord Server Admin are restricted to the Discord platform. The dashboard previously read and wrote every toolset through platform_toolsets.cli; the shared saver correctly discarded Discord-only toolsets from that platform, but the endpoint still returned success. Users therefore saw a success toast followed by an unchanged inactive state.

The dashboard now resolves each toolset's configuration platform. Ordinary toolsets retain the existing CLI scope, while Discord-only toolsets read and persist through platform_toolsets.discord. The API exposes that scope so the drawer can say Enabled for Discord, and profile-scoped refreshes now retain the selected profile.

Related Issue

NS-525: Cannot activate Discord server admin/read participation features

Type of Change

  • 🐛 Bug fix (non-breaking change that fixes an issue)
  • ✨ New feature (non-breaking change that adds functionality)
  • 🔒 Security fix
  • 📝 Documentation update
  • ✅ Tests (adding or improving test coverage)
  • ♻️ Refactor (no behavior change)
  • 🎯 New skill (bundled or hub)

Changes Made

  • Added deterministic configuration-platform resolution for platform-restricted toolsets.
  • Updated dashboard toolset list/toggle endpoints to read and write the resolved platform.
  • Included platform metadata in the frontend API contract and clarified the drawer's enabled scope.
  • Preserved the selected profile when refreshing toolsets after a change.
  • Added endpoint regression coverage proving Discord toolsets persist to platform_toolsets.discord without leaking into CLI configuration.

How to Test

  1. Open Skills → Toolsets in the dashboard and configure Discord (read/participate).
  2. Enable it and confirm the drawer reports Enabled for Discord.
  3. Reload or reopen the drawer and confirm the toolset remains active.
  4. Repeat for Discord Server Admin and verify both are present under platform_toolsets.discord, not platform_toolsets.cli.

Checklist

Code

  • I've read the Contributing Guide
  • My commit messages follow Conventional Commits (fix(scope):, feat(scope):, etc.)
  • I searched for existing PRs to make sure this isn't a duplicate
  • My PR contains only changes related to this fix/feature (no unrelated commits)
  • I've run pytest tests/ -q and all tests pass (focused toolset/dashboard suites: 517 passed)
  • I've added tests for my changes (required for bug fixes, strongly encouraged for features)
  • I've tested on my platform: macOS, Apple Silicon

Documentation & Housekeeping

  • I've updated relevant documentation (README, docs/, docstrings) — N/A; no public configuration contract changed
  • I've updated cli-config.yaml.example if I added/changed config keys — N/A
  • I've updated CONTRIBUTING.md or AGENTS.md if I changed architecture or workflows — N/A
  • I've considered cross-platform impact (Windows, macOS) per the compatibility guide — platform-neutral Python/TypeScript state routing only
  • I've updated tool descriptions/schemas if I changed tool behavior — N/A; tool behavior is unchanged

Screenshots / Logs

Live API smoke test against an isolated Hermes home:

discord        platform=discord enabled=false
discord_admin  platform=discord enabled=false

PUT /api/tools/toolsets/discord {"enabled": true}
→ {"ok":true,"name":"discord","platform":"discord","enabled":true}

discord        platform=discord enabled=true
discord_admin  platform=discord enabled=false

Validation:

517 passed
npm --workspace web run build
ruff check hermes_cli/tools_config.py hermes_cli/web_server.py tests/hermes_cli/test_web_server.py
git diff --check

Infographic

platform-aware-toolset-toggles

@alt-glitch alt-glitch added type/bug Something isn't working P2 Medium — degraded but workaround exists comp/dashboard Web dashboard / control panel UI (dashboard/, landing) platform/discord Discord bot adapter labels Jul 16, 2026
@shannonsands
shannonsands marked this pull request as ready for review July 16, 2026 04:14
@teknium1
teknium1 merged commit 3ffd8b3 into NousResearch:main Jul 16, 2026
40 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

comp/dashboard Web dashboard / control panel UI (dashboard/, landing) P2 Medium — degraded but workaround exists platform/discord Discord bot adapter type/bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants