Merge #42076: nested category plugin discovery + alias-normalized enable/disable (#41066)

Merge #42076: nested category plugin discovery + alias-normalized enable/disable (#41066)

Lands the complete nested category plugin fix:
- Discovery in `hermes plugins list` (from @islam666's #41076, carried in this PR)
- Alias-normalized enable/disable mutation path so nested plugins can be toggled
- Fixes the #41076 base breakages (web_server 6-tuple unpack + stale test fixtures)

Co-authored work: discovery by @islam666 (#41076).
Closes #41066.
This commit is contained in:
kshitij
2026-06-08 05:47:27 -07:00
committed by GitHub
5 changed files with 704 additions and 99 deletions
+9 -3
View File
@@ -9575,10 +9575,16 @@ def _merged_plugins_hub() -> Dict[str, Any]:
plugins_root_resolved = (get_hermes_home() / "plugins").resolve()
rows: List[Dict[str, Any]] = []
for name, version, description, source, dir_str in _discover_all_plugins():
if name in disabled_set:
for name, version, description, source, dir_str, key in _discover_all_plugins():
# Both the path-derived key (nested category plugins) and the bare
# manifest name count for enabled/disabled state, matching the runtime
# loader's back-compat lookup.
aliases = {name}
if key:
aliases.add(key)
if aliases & disabled_set:
runtime_status = "disabled"
elif name in enabled_set:
elif aliases & enabled_set:
runtime_status = "enabled"
else:
runtime_status = "inactive"