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

1.6 KiB

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