Skip to content

Delete the MEL.Spectre reflection seam once Spectre.MEL exposes Suspend()/WouldRender() (Spectre.MEL#42) #3557

Description

@thomhurst

Category: refactor — Breaking: no (internal)

Console/ISpectreLoggerSuppression.cs:124 hardcodes the internal type name "MEL.Spectre.Provider.SpectreConsoleLoggerProvider", removes the DI descriptors, and re-instantiates MEL.Spectre internals via ActivatorUtilities.CreateInstance with a guessed constructor shape (150-164). Any rename/namespace/ctor change in MEL.Spectre breaks ModularPipelines at startup. ~290 lines (ISpectreLoggerSuppression.cs, SpectreLoggerFilter.cs, ProviderTrackingLoggerFactory.cs, parts of INonSpectreLoggerFactory.cs) exist solely for ambient suppression, would-render queries, and filter-rule translation.

Fix: once thomhurst/Spectre.MEL#42 ships a public Suspend() + WouldRender(category, level) control surface, bump the package and delete the entire seam, replacing call sites in ConsoleCoordinator/OutputCoordinator/ModuleOutputBuffer with the supported API. Also adopt Spectre.MEL#49's timed render-gate (replaces the 50ms Monitor.TryEnter polling at ModuleOutputBuffer.cs:508-536) when available.

Part of #3239 (round 2 addendum). Blocked by thomhurst/Spectre.MEL#42.

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2Medium: improvements and polish - after P1enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions