Files
git.stella-ops.org/docs/implplan-blocked/audits/csproj-standards/Plugin/StellaOps.Plugin.Host/StellaOps.Plugin.Host.md

2.9 KiB

Audit - StellaOps.Plugin.Host

Project

  • Path: src/Plugin/StellaOps.Plugin.Host/StellaOps.Plugin.Host.csproj
  • Module: Plugin
  • Kind: Plugin
  • SDK: Microsoft.NET.Sdk
  • TargetFramework: net10.0
  • Audit date (UTC): 2026-01-30

Coding Standards Findings

  • Status: FAIL
  • Nullable: enable
  • TreatWarningsAsErrors: explicit true
  • Deterministic: inherited true
  • 100-line rule violations: 18
  • Service locator usage (BuildServiceProvider/GetService): 2
  • Analyzer enforcement: missing repo-wide (see summary).

Details

  • 100-line files:
    • src/Plugin/StellaOps.Plugin.Host/PluginHost.cs (418 lines)
    • src/Plugin/StellaOps.Plugin.Host/Dependencies/PluginDependencyResolver.cs (320 lines)
    • src/Plugin/StellaOps.Plugin.Host/Discovery/FileSystemPluginDiscovery.cs (287 lines)
    • src/Plugin/StellaOps.Plugin.Host/Health/PluginHealthMonitor.cs (253 lines)
    • src/Plugin/StellaOps.Plugin.Host/Dependencies/DependencyGraph.cs (225 lines)
    • src/Plugin/StellaOps.Plugin.Host/Context/PluginConfiguration.cs (221 lines)
    • src/Plugin/StellaOps.Plugin.Host/Loading/AssemblyPluginLoader.cs (213 lines)
    • src/Plugin/StellaOps.Plugin.Host/IPluginHost.cs (174 lines)
    • src/Plugin/StellaOps.Plugin.Host/Lifecycle/PluginLifecycleManager.cs (173 lines)
    • src/Plugin/StellaOps.Plugin.Host/Extensions/ServiceCollectionExtensions.cs (165 lines)
    • src/Plugin/StellaOps.Plugin.Host/Discovery/EmbeddedPluginDiscovery.cs (153 lines)
    • src/Plugin/StellaOps.Plugin.Host/Lifecycle/PluginStateMachine.cs (150 lines)
    • src/Plugin/StellaOps.Plugin.Host/Context/PluginContext.cs (130 lines)
    • src/Plugin/StellaOps.Plugin.Host/Context/PluginServices.cs (120 lines)
    • src/Plugin/StellaOps.Plugin.Host/PluginHostOptions.cs (118 lines)
    • src/Plugin/StellaOps.Plugin.Host/Loading/PluginAssemblyLoadContext.cs (115 lines)
    • src/Plugin/StellaOps.Plugin.Host/Context/PluginLogger.cs (112 lines)
    • src/Plugin/StellaOps.Plugin.Host/Discovery/CompositePluginDiscovery.cs (103 lines)
  • Service locator matches:
    • src/Plugin/StellaOps.Plugin.Host/Context/PluginServices.cs:36 public T? GetService() where T : class
    • src/Plugin/StellaOps.Plugin.Host/Context/PluginServices.cs:39 return _serviceProvider.GetService();

Fix Guidance

  • Split files over 100 lines into smaller types or partials.
  • Replace service locator usage with constructor injection.

Testing Fullness Findings

  • Status: FAIL
  • Expected layers: Unit, Integration, Security, Offline
  • Detected test projects: src/Plugin/__Tests/StellaOps.Plugin.Host.Tests/StellaOps.Plugin.Host.Tests.csproj [Unit]
  • Missing layers: Integration, Security, Offline

Manual checks required

  • Observability contract tests for WebService/Worker.
  • Offline execution (tests must run without network access).

Fix Guidance

  • Add integration tests for cross-component flows.
  • Add security tests for authn/authz or input validation.
  • Add offline/airgap coverage with fixtures only.