Skip to content

fix(dashboard): scope plugin routes to selected profile - #46426

Closed
iosub wants to merge 1 commit into
NousResearch:mainfrom
iosub:fix/dashboard-plugins-profile-scope-main
Closed

fix(dashboard): scope plugin routes to selected profile#46426
iosub wants to merge 1 commit into
NousResearch:mainfrom
iosub:fix/dashboard-plugins-profile-scope-main

Conversation

@iosub

@iosub iosub commented Jun 15, 2026

Copy link
Copy Markdown

Summary

Fix dashboard plugin discovery and management to respect the selected profile instead of falling back to the default one.

Changes

  • scope dashboard plugin endpoints and cache resolution to the active profile context
  • extend profile-aware plugin management routing in the frontend request wrapper
  • add regression coverage for profile-scoped dashboard plugin behavior

Verification

  • python -m pytest tests/hermes_cli/test_web_server_profile_unification.py -q
    • 28 passed, 1 warning in 4.45s

Copilot AI review requested due to automatic review settings June 15, 2026 02:45
@iosub

iosub commented Jun 15, 2026

Copy link
Copy Markdown
Author

fix #46408

Copilot AI 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.

Pull request overview

Note

Copilot was unable to run its full agentic suite in this review.

Updates the dashboard plugin-related APIs to respect the selected management profile, aligning them with existing profile-scoped endpoints.

Changes:

  • Added dashboard plugin API prefixes to the frontend’s profile-scoped routing logic.
  • Scoped multiple /api/dashboard/* endpoints on the web server to an optional profile query parameter and keyed the plugin cache by active profile home.
  • Extended skills discovery to allow overriding the skills directory path and added tests for profile scoping behavior.

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 1 comment.

File Description
web/src/lib/api.ts Treats dashboard plugin endpoints as profile-scoped so the frontend sends requests to the selected profile.
tools/skills_tool.py Adds an optional skills_dir override to skill discovery, supporting profile-specific scanning.
hermes_cli/web_server.py Adds profile scoping to dashboard plugin endpoints and prevents cross-profile cache reuse.
tests/hermes_cli/test_web_server_profile_unification.py Adds regression tests ensuring dashboard plugin endpoints and hub respect selected profile scoping.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread tools/skills_tool.py Outdated
Comment on lines +599 to +609
def _find_all_skills(*, skip_disabled: bool = False, skills_dir: Optional[Path] = None) -> List[Dict[str, Any]]:
"""Recursively find all skills in ~/.hermes/skills/ and external dirs.

Args:
skip_disabled: If True, return ALL skills regardless of disabled
state (used by ``hermes skills`` config UI). Default False
filters out disabled skills.
skills_dir: Optional override for the skills directory. When provided,
scans this directory instead of the module-level SKILLS_DIR. Used
by the web server to serve skills for a specific profile via
?profile= query parameter.
@iosub
iosub force-pushed the fix/dashboard-plugins-profile-scope-main branch from 5fb6a13 to bf1b6e9 Compare June 15, 2026 02:51
@iosub iosub closed this Jun 15, 2026
@iosub

iosub commented Jun 15, 2026

Copy link
Copy Markdown
Author

close with #46432

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.

3 participants