We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Walkthrough: sample collects telemetry via the in-memory exporter Update the reproduced Program.cs and the Diagnostics note to match the sample: in-memory exporters collect into lists and Telemetry.Summarize prints a compact confirmation, instead of the console exporter dumping every span and metric. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Document the diagnostics cancellation semantics Cancellation/timeout is kept out of plumber.requests.errors and the duration histogram and leaves the span Unset; note it on Diagnostics and on both ThrowOnException entries in Diagnostics-options. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Document Plumber.Diagnostics; reflect the Serilog/Diagnostics rename - Add Diagnostics and Diagnostics-options pages (tracing + metrics middleware). - Sidebar: replace the planned OpenTelemetry section with Diagnostics; add NuGet link. - Home: promote Diagnostics from planned to shipped. - Serilog-Extensions: update the namespace to Plumber.Serilog (package id unchanged). - Sample.Cli walkthrough: wire UseRequestDiagnostics + AddPlumberDiagnostics, the host-free SDK providers, and the logging-provider change into the reproduced source.
Restore the Microsoft middleware primer link The README trim dropped the newcomer primer link from "When to reach for Plumber"; add it alongside the existing Steve Gordon attribution in Concepts so no external reference is lost. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Document AddSerilogRequestLogging service registration Feature the new ServiceCollection extension AddSerilogRequestLogging, which registers the logger, DiagnosticContext, and options in one call and makes the parameterless UseSerilogRequestLogging() self-sufficient. Update the wiring and configuring sections, the options supply paths, and the Sample.Cli walkthrough where the sample now wires Serilog as the outermost middleware. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Document the Serilog Extensions package Add the Serilog Extensions section: a how-to landing page (install, AddSerilog wiring, pipeline placement, logging behavior, enrichment) and a RequestLoggerOptions property reference. Flip the sidebar and Home placeholders to live links and add the Serilog NuGet footer link. Grounded in the v4-ported src/Plumber.Serilog.Extensions. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Restructure wiki into per-package sections Split the single Reference group into per-package sections (Pipeline core, Testing) and reserve labeled (planned) sections for the Serilog and OpenTelemetry extension packages. Add a "Plumber packages" subsection to Home and correct the documented version from v3.x to v4.x in Home and the footer. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Add .gitignore for recipe sample build artifacts
Drop reloadOnChange docs; add Configuration reload recipe reloadOnChange is removed in Plumber v4. Remove it from the builder API docs (Building-A-Pipeline, Migration) and soften the file-watcher disposal notes that cited it. Add a v3->v4 migration item. New recipe + sample: Configuration reload without a restart — the owner brings their own change trigger and rebuilds a fresh handler from the recipe, swapping it (a ReloadableHandler wrapper does the atomic swap + dispose-old). The sample builds clean under strict settings and runs end-to-end (Hello -> reload -> Hola). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Standardize recipe Plumber versions to floating 3.* Replace the mix of 3.0.0 and 3.x across recipe "Tested against" lists and PackageReference snippets with a uniform 3.* floating range for both MSL.Plumber.Pipeline and MSL.Plumber.Pipeline.Testing. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Cover Plumber.Testing as a published NuGet package Flip the testing docs from preview to installable now that MSL.Plumber.Pipeline.Testing ships on NuGet: - Remove the preview banner and add install instructions to PlumberApplicationFactory and the Testing factory section. - Fix the wrong package id in the Tutorial (was MSL.Plumber.Testing). - Add a NuGet - Testing link to the sidebar. - List the testing package in the six recipes whose tests use it. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Document PlumberApplicationFactory.Services Adds the Services section to the factory surface reference and switches the CLI dispatcher recipe's test assertion to resolve the pipeline's own DbContext through a scope, as the example originally intended. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Fix uncompilable Testing snippet in CLI dispatcher recipe The test example called an undefined SharedSyncBuilder and closed with 'await using var scope = factory.CreateHandler()' — which neither compiled against 3.x nor meant anything: the handler is factory-owned and exposes no service provider to scope from. The assertion now reads the in-memory SQLite database through a fresh MyDbContext over the test's own connection. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Document v4 breaking changes Adds the v3-to-v4 migration section (Production environment default, async-aware disposal) and updates the affected claims: the AddDefaultConfigurationSources environment fallback, and the IAsyncDisposable surface on RequestHandler and PlumberApplicationFactory including host-mode ownership semantics. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Document RequestHandler.Middleware introspection Middleware.md gains 'Inspecting registrations' (descriptor semantics); Testing.md gains 'Pipeline composition' (the assertion pattern). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
branding
Updated Home (markdown)
added buildable recipes
fixed broken link
apply editoriial guidance
wiki
Initial Home page