Previous version failed GetExportedTypes() because Assembly.Load(bytes)
couldn't resolve Disco.Services.dll from the PowerShell process. Now
uses LoadFrom() with an AssemblyResolve handler that probes both the
build output and Disco bin directories. Also adds ReflectionTypeLoad
exception detail logging and proper handler cleanup in finally block.
- Disco assembly version reporting at build start
- Reflection-based feature verification:
- Discovers UIExtensionFeature<T> implementations in compiled DLL
- Validates [PluginFeature] attribute presence on each feature
- Confirms ExecuteAction and Initialize are overridden
- Checks model types implement BaseUIModel interface
- Reports generic type definition FullName for manifest comparison
- ManifestGenerator output capture (stdout + stderr with labels)
- Manifest validation after generation:
- Verifies Features array is present and non-empty
- Char-by-char CategoryTypeName comparison with hex dump on mismatch
- Dumps raw manifest.json for manual inspection
- Package verification (zip content listing)
- Final summary with actionable next-step checklist when issues found