fix(security): require opt-in for project plugin discovery

This commit is contained in:
Test
2026-03-20 20:50:30 -07:00
parent 4263350c5b
commit 10d719ac1b
4 changed files with 28 additions and 4 deletions

View File

@@ -67,6 +67,7 @@ class TestPluginDiscovery:
project_dir = tmp_path / "project"
project_dir.mkdir()
monkeypatch.chdir(project_dir)
monkeypatch.setenv("HERMES_ENABLE_PROJECT_PLUGINS", "true")
plugins_dir = project_dir / ".hermes" / "plugins"
_make_plugin_dir(plugins_dir, "proj_plugin")
@@ -76,6 +77,19 @@ class TestPluginDiscovery:
assert "proj_plugin" in mgr._plugins
assert mgr._plugins["proj_plugin"].enabled
def test_discover_project_plugins_skipped_by_default(self, tmp_path, monkeypatch):
"""Project plugins are not discovered unless explicitly enabled."""
project_dir = tmp_path / "project"
project_dir.mkdir()
monkeypatch.chdir(project_dir)
plugins_dir = project_dir / ".hermes" / "plugins"
_make_plugin_dir(plugins_dir, "proj_plugin")
mgr = PluginManager()
mgr.discover_and_load()
assert "proj_plugin" not in mgr._plugins
def test_discover_is_idempotent(self, tmp_path, monkeypatch):
"""Calling discover_and_load() twice does not duplicate plugins."""
plugins_dir = tmp_path / "hermes_test" / "plugins"