26 lines
1.6 KiB
Markdown
26 lines
1.6 KiB
Markdown
# Plugin Discovery (FileSystem and Embedded)
|
|
|
|
## Module
|
|
Plugin
|
|
|
|
## Status
|
|
IMPLEMENTED
|
|
|
|
## Description
|
|
Multi-strategy plugin discovery with filesystem scanning, embedded plugins, and composite discovery that combines both approaches.
|
|
|
|
## Implementation Details
|
|
- **CompositePluginDiscovery**: `src/Plugin/StellaOps.Plugin.Host/Discovery/CompositePluginDiscovery.cs` -- combines multiple IPluginDiscovery sources; deduplicates by plugin ID (first-wins); supports DiscoverAsync (bulk) and DiscoverSingleAsync (by PluginSource); routes FileSystem/Embedded source types to appropriate discoverer
|
|
- **FileSystemPluginDiscovery**: `src/Plugin/StellaOps.Plugin.Host/Discovery/FileSystemPluginDiscovery.cs` -- scans filesystem directories for plugin assemblies and manifests
|
|
- **EmbeddedPluginDiscovery**: `src/Plugin/StellaOps.Plugin.Host/Discovery/EmbeddedPluginDiscovery.cs` -- discovers plugins embedded in host assemblies
|
|
- **IPluginDiscovery**: `src/Plugin/StellaOps.Plugin.Host/Discovery/IPluginDiscovery.cs` -- interface: DiscoverAsync, DiscoverSingleAsync
|
|
- **PluginManifest**: `src/Plugin/StellaOps.Plugin.Abstractions/Manifest/PluginManifest.cs` -- manifest model with Info, Dependencies, Capabilities
|
|
- **Source**: Feature matrix scan
|
|
|
|
## E2E Test Plan
|
|
- [ ] Verify filesystem discovery scans configured paths and finds plugin assemblies
|
|
- [ ] Test embedded discovery locates plugins within host assemblies
|
|
- [ ] Verify composite discovery deduplicates plugins by ID across sources
|
|
- [ ] Test single plugin discovery routes to correct discoverer by source type
|
|
- [ ] Verify error in one discoverer does not block others
|