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

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