Files
git.stella-ops.org/docs/features/unchecked/plugin/plugin-dependency-resolution.md

24 lines
1.4 KiB
Markdown

# Plugin Dependency Resolution
## Module
Plugin
## Status
IMPLEMENTED
## Description
Plugin dependency resolution with resolver service, interface, and comprehensive tests.
## Implementation Details
- **PluginDependencyResolver**: `src/Plugin/StellaOps.Plugin.Host/Dependencies/PluginDependencyResolver.cs` -- topological sorting of plugin manifests for load order; cycle detection via DFS with CircularDependencyError reporting; version constraint parsing (>=, >, <=, <, =, ~pessimistic, ^compatible); AreDependenciesSatisfied/GetMissingDependencies for optional dependency support; reverse load order for unload sequence
- **IPluginDependencyResolver**: `src/Plugin/StellaOps.Plugin.Host/Dependencies/IPluginDependencyResolver.cs` -- interface: ResolveLoadOrder, ResolveUnloadOrder, AreDependenciesSatisfied, GetMissingDependencies, ValidateDependencyGraph
- **DependencyGraph**: `src/Plugin/StellaOps.Plugin.Host/Dependencies/DependencyGraph.cs` -- graph data structure with AddNode, AddEdge, HasNode, GetDependents
- **Source**: Feature matrix scan
## E2E Test Plan
- [ ] Verify topological sort produces correct load order for a dependency chain
- [ ] Test circular dependency detection reports correct cycle paths
- [ ] Verify version constraint matching for all operators (>=, >, <=, <, =, ~, ^)
- [ ] Test unload order is reverse of load order
- [ ] Verify optional dependencies do not block loading when missing