2 Commits

Author SHA1 Message Date
HAL9000 cef70ff98a fix(security): add Robot integration test and CONTRIBUTORS for #7476
Add Robot Framework integration test verifying that load_from_entry_points
does not call ep.load() for entry points with disallowed module prefixes
(security regression test for issue #7476).

Also add HAL 9000 to CONTRIBUTORS.md per CONTRIBUTING.md process rules.

ISSUES CLOSED: #7476
2026-04-15 06:37:18 +00:00
freemo 521a552e56 feat(extensibility): implement Plugin Architecture Framework with module:ClassName resolution
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Successful in 14s
CI / build (pull_request) Successful in 15s
CI / quality (pull_request) Successful in 19s
CI / typecheck (pull_request) Successful in 37s
CI / security (pull_request) Successful in 51s
CI / unit_tests (pull_request) Successful in 2m31s
CI / integration_tests (pull_request) Successful in 3m27s
CI / docker (pull_request) Successful in 56s
CI / coverage (pull_request) Successful in 6m7s
CI / lint (push) Successful in 12s
CI / build (push) Successful in 14s
CI / quality (push) Successful in 17s
CI / security (push) Successful in 42s
CI / typecheck (push) Successful in 44s
CI / benchmark-regression (push) Has been skipped
CI / unit_tests (push) Successful in 2m37s
CI / docker (push) Successful in 39s
CI / integration_tests (push) Successful in 3m24s
CI / coverage (push) Successful in 5m9s
CI / benchmark-publish (push) Has been cancelled
CI / benchmark-regression (pull_request) Successful in 32m7s
Implement plugin architecture framework enabling custom implementations
of tools, strategies, sandbox strategies, index backends, and pipeline
components through module:ClassName resolution and entry point discovery.

Key changes:
- Add infrastructure/plugins/ package with PluginLoader, PluginManager, types, exceptions
- Implement dynamic import via module:ClassName with security prefix allowlist
- Add entry point discovery via importlib.metadata
- Add Protocol validation for loaded plugin classes
- Add plugin lifecycle management (discover/activate/deactivate)
- Add config-driven registration (custom_module + custom_class + custom_options)
- Register PluginManager in DI container
- Add comprehensive Behave BDD tests, Robot integration tests, ASV benchmarks

ISSUES CLOSED: #585
2026-03-10 14:51:39 +00:00