Skip to content

fix(plugins): use path keys for bundled platform plugins - #27240

Closed
felix-windsor wants to merge 1 commit into
NousResearch:mainfrom
felix-windsor:felix/fix-platform-plugin-path-keys
Closed

felix-windsor wants to merge 1 commit into
NousResearch:mainfrom
felix-windsor:felix/fix-platform-plugin-path-keys

Conversation

@felix-windsor

Copy link
Copy Markdown

Summary

  • scan bundled plugins/platforms/* with the same path-derived key shape used by the general plugin scanner
  • make bundled platform plugins register as platforms/<name> instead of bare manifest names like teams-platform
  • add a regression test covering the Teams platform plugin key

Why

hermes plugins list and the docs surface sub-category plugins by path key, for example platforms/teams. Runtime discovery scanned the bundled plugins/platforms directory as a separate root, so PluginManager recorded the same plugin as teams-platform. That made runtime state diverge from the key users see in plugin management surfaces.

Open PR overlap checked

Verification

  • ./scripts/run_tests.sh tests/hermes_cli/test_plugin_scanner_recursion.py::TestBundledBackendAutoLoad::test_bundled_platform_plugins_use_path_derived_keys tests/hermes_cli/test_plugin_scanner_recursion.py::TestBundledBackendAutoLoad::test_bundled_image_gen_openai_autoloads tests/gateway/test_plugin_platform_interface.py
  • ./scripts/run_tests.sh tests/hermes_cli/test_plugin_scanner_recursion.py
  • .venv/bin/ruff check hermes_cli/plugins.py tests/hermes_cli/test_plugin_scanner_recursion.py
  • git diff --check

@cardtest15-coder

This comment was marked as spam.

@alt-glitch alt-glitch added type/bug Something isn't working P3 Low — cosmetic, nice to have comp/plugins Plugin system and bundled plugins comp/cli CLI entry point, hermes_cli/, setup wizard labels May 17, 2026
@cardtest15-coder

This comment was marked as spam.

@felix-windsor
felix-windsor force-pushed the felix/fix-platform-plugin-path-keys branch from 811239b to 4b28b21 Compare May 17, 2026 10:57
@felix-windsor
felix-windsor marked this pull request as ready for review May 17, 2026 10:57
@felix-windsor

Copy link
Copy Markdown
Author

Rebased on latest main and force-pushed the branch.

Local verification:

  • ./scripts/run_tests.sh tests/hermes_cli/test_plugin_scanner_recursion.py::TestBundledBackendAutoLoad::test_bundled_platform_plugins_use_path_derived_keys tests/hermes_cli/test_plugin_scanner_recursion.py::TestBundledBackendAutoLoad::test_bundled_image_gen_openai_autoloads tests/gateway/test_plugin_platform_interface.py

Marked ready for review.

@felix-windsor
felix-windsor force-pushed the felix/fix-platform-plugin-path-keys branch from 4b28b21 to a1fc963 Compare May 18, 2026 02:15
@felix-windsor

Copy link
Copy Markdown
Author

Rebased on latest main (as of 2026-05-18) and force-pushed.

Local verification:

  • ./scripts/run_tests.sh tests/hermes_cli/test_plugin_scanner_recursion.py::TestBundledBackendAutoLoad::test_bundled_platform_plugins_use_path_derived_keys

(Still seeing no CI statuses reported on the PR head; may need maintainer Actions approval for fork PRs.)

@felix-windsor
felix-windsor force-pushed the felix/fix-platform-plugin-path-keys branch from a1fc963 to fd2eaf7 Compare May 19, 2026 03:13
@teknium1

teknium1 commented Jun 13, 2026 •

Copy link
Copy Markdown
Collaborator

Thanks for the focused fix. The premise remains valid on current main: runtime discovery scans plugins/platforms as a separate root at hermes_cli/plugins.py:1341, and _parse_manifest() uses the manifest name when its prefix is empty at hermes_cli/plugins.py:1579. Since plugins/platforms/teams/plugin.yaml:1 declares name: teams-platform, runtime records a different key from the CLI scanner, which builds nested path keys at hermes_cli/plugins_cmd.py:1013 and hermes_cli/plugins_cmd.py:978.

The proposed prefix-aware scan fixes the entire bundled-platform category rather than only Teams, while the regression test verifies the representative mismatch. The test is a behavioral contract between runtime discovery and the established path-key model, not a catalog snapshot. GitHub currently reports the PR mergeable.

This is an automated hermes-sweeper review.

@teknium1

Copy link
Copy Markdown
Collaborator

Thanks @felix-windsor — this fix landed on main as a slim redo in #118854 (405975a), which credits this PR and closes #27548. Closing as superseded.

@teknium1 teknium1 closed this Sep 22, 2026
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 comp/plugins Plugin system and bundled plugins 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 type/bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants