Skip to content

docs(pipeline-explorer): correct user-facing inaccuracies, refresh screenshots, add OTel-bridge captures + FILE-path known issue - #11

Merged
yandersr merged 4 commits into
mainfrom
1.3.0
Jul 8, 2026
Merged

docs(pipeline-explorer): correct user-facing inaccuracies, refresh screenshots, add OTel-bridge captures + FILE-path known issue#11
yandersr merged 4 commits into
mainfrom
1.3.0

Conversation

@yandersr

@yandersr yandersr commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

Verified doc claims against the implementation (multi-agent review) and fixed the ones that would mislead a user:

  • OpenTelemetry bridge live capture marked Available (was "in development"); Mode B rewritten to present tense.
  • profiler-not-attaching: DSoftMediatorProfilingEnabled default is off (was "true"); added the config-scoped + AOT/CI/publish force-off cause; removed the non-existent Settings-panel profiling toggle and the fictional "Snapshot" mechanism.
  • analyzer-errors: machine-local injection model (no longer the solution Directory.Build.props); correct disable property (DSoftMediatorProfilingEnabled); DiagnosticsEnabled caveat.
  • activation-failed: removed the dead /transfer URL and non-existent "Move to another machine"; use per-machine Deactivate.
  • installation/index: correct VS Code extension id (DSoftStudio.mediator-pipeline-explorer) and per-platform vsix asset name.
  • quick-start: Behaviors -> Components rename; correct pipeline-mode badge labels; Detach/Dock and section-filter scoped to Visual Studio.
  • server-startup: added the .NET 8 runtime and wrong-platform-vsix causes.
  • output-channel names (Mediator Server / DSoftStudio Mediator); OSS integration nits (HybridCache overhead wording, OTel observer-vs-behavior).

Refreshed 11 screenshots to the current UI (Components rename, populated FILE, VS empty state, detached graph) and added two OpenTelemetry-bridge captures (enriched db-dependency flame + live fan-out). Documented the layered-solution FILE-path / Open-in-Editor limitation as a known issue with the rebuild workaround.

…reenshots, add OTel-bridge captures + FILE-path known issue

Verified doc claims against the implementation (multi-agent review) and fixed the
ones that would mislead a user:

- OpenTelemetry bridge live capture marked **Available** (was "in development"); Mode B rewritten to present tense.
- profiler-not-attaching: DSoftMediatorProfilingEnabled default is **off** (was "true"); added the config-scoped + AOT/CI/publish force-off cause; removed the non-existent Settings-panel profiling toggle and the fictional "Snapshot" mechanism.
- analyzer-errors: machine-local injection model (no longer the solution Directory.Build.props); correct disable property (DSoftMediatorProfilingEnabled); DiagnosticsEnabled caveat.
- activation-failed: removed the dead /transfer URL and non-existent "Move to another machine"; use per-machine Deactivate.
- installation/index: correct VS Code extension id (DSoftStudio.mediator-pipeline-explorer) and per-platform vsix asset name.
- quick-start: Behaviors -> Components rename; correct pipeline-mode badge labels; Detach/Dock and section-filter scoped to Visual Studio.
- server-startup: added the .NET 8 runtime and wrong-platform-vsix causes.
- output-channel names (Mediator Server / DSoftStudio Mediator); OSS integration nits (HybridCache overhead wording, OTel observer-vs-behavior).

Refreshed 11 screenshots to the current UI (Components rename, populated FILE,
VS empty state, detached graph) and added two OpenTelemetry-bridge captures
(enriched db-dependency flame + live fan-out). Documented the layered-solution
FILE-path / Open-in-Editor limitation as a known issue with the rebuild workaround.
@github-actions

github-actions Bot commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

Summary

Summary
Generated on: 07/08/2026 - 21:31:51
Coverage date: 07/08/2026 - 21:31:28 - 07/08/2026 - 21:31:45
Parser: MultiReport (8x Cobertura)
Assemblies: 6
Classes: 69
Files: 63
Line coverage: 93.2% (3515 of 3771)
Covered lines: 3515
Uncovered lines: 256
Coverable lines: 3771
Total lines: 8984
Branch coverage: 81.3% (1412 of 1736)
Covered branches: 1412
Total branches: 1736
Method coverage: Feature is only available for sponsors
Tag: 149_28977114043

Coverage

DSoftStudio.Mediator - 98.2%
Name Line Branch
DSoftStudio.Mediator 98.2% 92.7%
DSoftStudio.Mediator.BehaviorHandlerAdapter`2 100% 100%
DSoftStudio.Mediator.HandlerCache`2 100% 100%
DSoftStudio.Mediator.HandlerLifetimeOptimizer 97.5% 92.1%
DSoftStudio.Mediator.Mediator 100% 91.6%
DSoftStudio.Mediator.MediatorBuilder 100% 100%
DSoftStudio.Mediator.NotificationCachedDispatcher 100% 100%
DSoftStudio.Mediator.NotificationDispatch`1 100%
DSoftStudio.Mediator.NotificationHandlerCache`1 100% 100%
DSoftStudio.Mediator.NotificationObjectDispatch 90.4% 75%
DSoftStudio.Mediator.NotificationPublisherFlag 100% 100%
DSoftStudio.Mediator.ParallelNotificationPublisher 100% 100%
DSoftStudio.Mediator.PipelineChainCache`2 100% 100%
DSoftStudio.Mediator.PipelineChainHandler`2 98.4% 90.9%
DSoftStudio.Mediator.RequestDispatch`2 100%
DSoftStudio.Mediator.RequestObjectDispatch 90.9% 50%
DSoftStudio.Mediator.SequentialNotificationPublisher 100% 100%
DSoftStudio.Mediator.ServiceCollectionExtensions 100%
DSoftStudio.Mediator.StreamBehaviorHandlerAdapter`2 100% 100%
DSoftStudio.Mediator.StreamDispatch`2 100%
DSoftStudio.Mediator.StreamHandlerCache`2 100% 100%
DSoftStudio.Mediator.StreamPipelineChainCache`2 100% 100%
DSoftStudio.Mediator.StreamPipelineChainHandler`2 92.8% 75%
DSoftStudio.Mediator.StreamPipelineInvoker 100% 100%
DSoftStudio.Mediator.Abstractions - 91.3%
Name Line Branch
DSoftStudio.Mediator.Abstractions 91.3% ****
DSoftStudio.Mediator.Abstractions.HandlerLifetimeAttribute 0%
DSoftStudio.Mediator.Abstractions.MediatorHandlerRegistrationAttribute 100%
DSoftStudio.Mediator.Abstractions.RequestExceptionHandlerState`1 100%
DSoftStudio.Mediator.Abstractions.Unit 100%
DSoftStudio.Mediator.FluentValidation - 100%
Name Line Branch
DSoftStudio.Mediator.FluentValidation 100% 87.5%
DSoftStudio.Mediator.FluentValidation.FluentValidationServiceCollectionExte
nsions
100%
DSoftStudio.Mediator.FluentValidation.MediatorValidationException 100% 83.3%
DSoftStudio.Mediator.FluentValidation.ValidationBehavior`2 100% 90%
DSoftStudio.Mediator.Generators - 91.8%
Name Line Branch
DSoftStudio.Mediator.Generators 91.8% 76.8%
DSoftStudio.Mediator.Generators.BehaviorTypeInfo 100% 100%
DSoftStudio.Mediator.Generators.CqrsSemanticAnalyzer 86.3% 61.5%
DSoftStudio.Mediator.Generators.DependencyInjectionGenerator 89.6% 77.4%
DSoftStudio.Mediator.Generators.DiagnosticDescriptors 100%
DSoftStudio.Mediator.Generators.EquatableArray`1 100% 92.8%
DSoftStudio.Mediator.Generators.HandlerDiscovery 97.1% 84%
DSoftStudio.Mediator.Generators.InterceptorHelpers 84.2% 55.8%
DSoftStudio.Mediator.Generators.MediatorExtensionsGenerator 93.4% 69.3%
DSoftStudio.Mediator.Generators.MediatorPipelineGenerator 93.4% 78.2%
DSoftStudio.Mediator.Generators.MixedRegistrationApiAnalyzer 91.1% 74.5%
DSoftStudio.Mediator.Generators.MockDetectionAnalyzer 100% 100%
DSoftStudio.Mediator.Generators.NotificationGenerator 92.5% 77.7%
DSoftStudio.Mediator.Generators.PublishInterceptorGenerator 90.4% 67.2%
DSoftStudio.Mediator.Generators.ReferencedAssemblyScanner 85.8% 81.6%
DSoftStudio.Mediator.Generators.SelfHandlerDetail 100% 83.3%
DSoftStudio.Mediator.Generators.SelfHandlerParam 100% 83.3%
DSoftStudio.Mediator.Generators.SendInterceptorGenerator 91.6% 75%
DSoftStudio.Mediator.Generators.StreamGenerator 94.9% 81%
DSoftStudio.Mediator.Generators.StreamInterceptorGenerator 90.9% 73.3%
DSoftStudio.Mediator.HybridCache - 100%
Name Line Branch
DSoftStudio.Mediator.HybridCache 100% 100%
DSoftStudio.Mediator.HybridCache.CachingBehavior`2 100% 100%
DSoftStudio.Mediator.HybridCache.HybridCacheServiceCollectionExtensions 100%
DSoftStudio.Mediator.HybridCache.ICachedRequest 100%
DSoftStudio.Mediator.OpenTelemetry - 96.8%
Name Line Branch
DSoftStudio.Mediator.OpenTelemetry 96.8% 90.3%
DSoftStudio.Mediator.OpenTelemetry.ActivityHelper 100% 100%
DSoftStudio.Mediator.OpenTelemetry.DatabaseSpanEnrichmentProcessor 95% 92.3%
DSoftStudio.Mediator.OpenTelemetry.InstrumentedNotificationPublisher 97.4% 89.5%
DSoftStudio.Mediator.OpenTelemetry.MediatorDispatchTracingObserver 100% 93.7%
DSoftStudio.Mediator.OpenTelemetry.MediatorInstrumentation 100% 50%
DSoftStudio.Mediator.OpenTelemetry.MediatorInstrumentationOptions 100%
DSoftStudio.Mediator.OpenTelemetry.MediatorMetrics 100%
DSoftStudio.Mediator.OpenTelemetry.MediatorMetricsBehavior`2 100% 100%
DSoftStudio.Mediator.OpenTelemetry.MediatorNotificationMetadata`1 100%
DSoftStudio.Mediator.OpenTelemetry.MediatorStreamMetadata`2 100%
DSoftStudio.Mediator.OpenTelemetry.MediatorStreamMetricsBehavior`2 100% 85.7%
DSoftStudio.Mediator.OpenTelemetry.MediatorStreamTracingBehavior`2 100% 83.3%
DSoftStudio.Mediator.OpenTelemetry.MediatorTelemetryMetadata`2 100% 100%
DSoftStudio.Mediator.OpenTelemetry.OpenTelemetryServiceCollectionExtensions 86.8% 77.2%
DSoftStudio.Mediator.OpenTelemetry.SqlStatementParser 95.2% 94.2%
OpenTelemetry.Metrics.MediatorMeterProviderBuilderExtensions 100%
OpenTelemetry.Trace.MediatorTracerProviderBuilderExtensions 100%

yandersr added 3 commits July 8, 2026 17:57
… complexity + ThrowIfNull)

Address the production-code (src/) findings from the SonarCloud scan; the
remaining open issues are test-only and largely intentional.

- PipelineChainHandler: replace the single-iteration `foreach+break` used to
  pick the first dispatch observer (S1751 reliability bug) with the same
  array-materialize-then-[0] pattern the constructor already uses for the
  behavior/processor collections — no LINQ, no boxed enumerator, behavior
  preserved (first observer wins, null when none).

- HandlerLifetimeOptimizer: use ArgumentNullException.ThrowIfNull in Stage and
  Apply (consistent with the rest of the library), and extract the
  "last winning descriptor" scan into FindWinningDescriptorIndex to bring
  Apply's cognitive complexity under the threshold.

- DependencyInjectionGenerator.GetHandlerInfo: split into GetDependencyTypes,
  GetExplicitLifetime and MatchHandlerInterface (with a TypeArg helper); the
  three near-identical handler-interface branches collapse into one switch.
  Behavior preserved — same HandlerInfo output.

Build: core + generators 0 errors. Tests: 556/556 green (Tests 412,
OpenTelemetry 102, FluentValidation 21, HybridCache 13, InternalsVisibleTo 4,
ModularMonolith 4).
… bypass sonar.exclusions)

sonar.exclusions already lists tests/**, but that only filters SonarCloud's own
(csharpsquid) analysis — externally-imported Roslyn issues (CA*, DSOFT*) are
attached to files during the MSBuild build and are NOT subject to
sonar.exclusions, so advisory findings on test fixtures (CA1861, DSOFT006,
CA2263) kept surfacing on the dashboard.

Add a multicriteria rule (e4) with ruleKey="*" and resourceKey="tests/**/*" —
the documented mechanism that ignores every issue, imported ones included, on a
path. Test fixtures deliberately exercise raw IRequest<T> dispatch and mirror
the generator's runtime-Type registrations; those advisories don't apply to
throwaway test types.
Mediator + Abstractions 1.3.0-rc.2 -> 1.3.0, OpenTelemetry 1.1.0-rc.4 -> 1.1.0,
HybridCache + FluentValidation 1.0.9-rc.2 -> 1.0.9. Changelogs stamped 2026-07-08
with stable companion versions; rc bookkeeping comment removed from the
OpenTelemetry csproj.
@yandersr
yandersr merged commit b2986de into main Jul 8, 2026
6 checks passed
@yandersr
yandersr deleted the 1.3.0 branch July 8, 2026 21:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant