Version History

  • v1.54.0 - Error Taxonomy generator (_ErrorTaxonomy markdown table constant; Result<T,TError> β†’ certain; Fail/Ensure body scan β†’ inferred; both packages); Debug Panel nodeId subchain fix (cross-method _nodeIds_ array includes inner slots in execution order); subgraph ENTRY highlight; VSIX v1.4.1; 4,957 tests
  • v1.53.0 - FlowProxy: partial class β†’ svc.Flow.Process() (always-on) + svc.Flow.Debug.Process() (single-trace DebugProxy); DebugProxy saves to reslava-debug-{method}.json; REF004 + code fix; _Traced removed; RingBufferObserver.Save(path?) (auto-prefix reslava-, BOM-free); Debug panel file watcher **/reslava-*.json; source badge; multi-file picker; VSIX v1.4.0; 4,938 tests
  • v1.52.0 - Pipeline runtime observation: ResultFlowObserver, RingBufferObserver, PipelineObserver, PipelineTrace/NodeTrace; hooks in Bind/Map/Ensure/Tap/Match; _Traced generated extension (both packages); REslava.Result.Diagnostics package (PipelineTraceHost.Start + MapResultFlowTraces); VSIX v1.3.0 Live Panel (History/Step/Replay, diagram node highlight, Debug visibility filtering); off-by-one fixes; 4,892 tests
  • v1.51.0 - Pipeline identity (pipelineId, nodeIds, namespace in _Info); _TypeFlow constant; FAIL node error annotation + depth-2 errorTypes scan; %% pipelineId: comment; Legend update; two-track NuGet README messaging; NuGet transitive dep fix; VSIX v1.2.2 (error children, layer tabs, walkthrough, missing-package detection, empty-state tree item); 4,704 tests
  • v1.50.1 - Registry generator fix (include [ResultFlow] methods with non-Result return types; fix sourceLine off-by-one); VSIX v1.2.1 sidebar stats fix; 4,688 tests
  • v1.50.0 - Pipeline Registry Generator (ResultFlowRegistryGenerator) β€” emits {ClassName}_PipelineRegistry.g.cs with _Methods + {MethodName}_Info JSON constants (returnType, nodeCount, nodeKinds, errorTypes, sourceLine); ResultFlowRegistry=false opt-out; VSIX v1.2.0 ⚑ Flow Catalog sidebar (workspace-wide tree, project build status, method metadata, stats bar); single/multiple window mode (reslava.diagramWindowMode); 4,688 tests
  • v1.49.0 - VSIX v1.1.0 WebviewPanel renderer (bundled Mermaid v10.9.5, offline, one-panel-per-method); node-click navigation to source; Source/Legend/SVG/PNG toolbar; REslava.Result.Flow build props (CompilerVisibleProperty parity); MermaidRenderer quote-escaping fix; 4,688 tests
  • v1.48.0 - CodeLens β–Ά Open diagram preview via REslava.Result Extensions VSIX (VS Code Marketplace); 4-step fallback chain (*_Flows.g.cs β†’ auto-insert comment β†’ existing comment β†’ notify); ResultFlowDefaultTheme MSBuild property for solution-wide default theme; NuGet README images switched to transparent-background PNGs via raw.githubusercontent.com; 4,688 tests
  • v1.47.5 - NuGet README images: SVGs packed locally inside REslava.Result and REslava.Result.Flow nupkg (images/ folder); NuGet.org blocks external raw.githubusercontent.com URLs β€” relative paths fix broken image icons
  • v1.47.4 - Dark theme diagrams: [ResultFlow(Theme = ResultFlowTheme.Dark)] emits full dark classDef palette for all diagram types; MermaidInitDark fixes titles and edge label pills; layer colours centralized in ResultFlowThemes.cs with depth-indexed Layer{n}_Style; FulfillmentService cross-layer dark demo; MkDocs dark catalog; both packages; 4,676 tests
  • v1.47.3 - SVG Single Source of Truth: all non-code Mermaid showcase blocks in GitHub README, NuGet READMEs, and MkDocs pages replaced with SVG image links; scripts/svg.sh local orchestrator; generate_flow_catalog.py --export-mmd export mode; auto width detection (TDβ†’450, LRβ†’900); Demo extended with InventoryService+WarehouseService; Legend Guard tooltip; 4,648 tests
  • v1.47.2 - Show All Clearly: async suffix stripped from node labels (FindProduct⚑ not FindProductAsync ⚑); :::bind thick-border vs :::map plain-green split; title type annotation (PlaceOrder⚑ β†’ ⟨Order⟩); Legend constant per *_Flows class; Gatekeeper predicate tooltip (<span title='...'>); 4,648 tests
  • v1.47.1 - Diagram title + root entry node: every [ResultFlow] diagram now includes Mermaid frontmatter title: and an amber ENTRY_ROOT seed node; code action fixes (title/entry missing, CRLF blank line, REslava.ResultFlow refresh parity); generate_flow_catalog.py compact format fix; 4,644 tests

- v1.47.0 - Architectural Flow Catalog: generate_flow_catalog.py scans generated .cs files and publishes all [ResultFlow] + [DomainBoundary] diagrams to MkDocs (flow-catalog/); new Demo Project MkDocs section; CI auto-rebuild on every deploy; no generator changes; 4,638 tests

  • v1.46.3 - Subgraph entry arrow β€” cross-method subgraph blocks open with a thick ==> arrow marking execution entry; flat pipelines unchanged; both ResultFlow packages
  • v1.46.2 - NuGet README images fixed β€” switched from HTML <img> (stripped by NuGet) to standard Markdown image syntax; SVG diagrams now render correctly on NuGet.org; 4,634 tests
  • v1.46.1 - SVG diagrams in NuGet READMEs β€” REslava.Result and REslava.Result.Flow NuGet pages now show rendered pipeline diagrams via hosted SVG; Mermaid blocks removed (NuGet does not render Mermaid); 4,634 tests
  • v1.46.0 - Match multi-branch Mermaid: Match/MatchAsync renders as hexagon with -->|ok| SUCCESS + typed N-branch -->|TypeName| FAIL edges; PipelineNode.MatchBranchLabels; Gap 1 Terminal guard; both packages; 4,634 tests
  • v1.45.0 - Domain Boundary Diagrams: [DomainBoundary] on class/method triggers _LayerView, _Stats, _ErrorSurface, _ErrorPropagation constants; automatic layer detection via namespace heuristics; layer subgraph coloring; README hero replaced with _LayerView + _Diagram duo; public diagram gallery at mkdocs/resultflow/diagrams/; ~4,680 tests
  • v1.44.1 - "Visual Result pipelines for .NET" branding; NuGet <Description> + README opening sections updated for all 8 packages; REslava.Result.Flow positioned as primary ResultFlow package; MkDocs frontmatter audit; organize_docs.py sections 27–28 fix

- v1.44.0 - REslava.Result adds netstandard2.0 target (fixes NuGet search visibility); NuGet title + tags updated for better discoverability; 187 features, >4,500 tests

- v1.43.0 - [DomainBoundary] attribute + RESL1030 analyzer (typed error crossing guard); SmartEndpoints ProducesResponseType per error type for ErrorsOf<T1..Tn>; clickable Mermaid nodes (ResultFlowLinkMode = vscode); {MethodName}_Sidecar fenced markdown constant; 187 features, >4,500 tests

- v1.42.0 - ResultContext pipeline context carrier (Entity/EntityId/CorrelationId/OperationName/TenantId); auto-seeding on Ok()/Fail(), .WithContext() fluent merge, parent-wins propagation through all pipeline operators, error auto-enrichment (non-overwriting); DomainTags.CorrelationId/OperationName/TenantId new keys; REslava.Result.OpenTelemetry new package (.WithOpenTelemetry(), .WriteErrorTagsToSpan()); ResultFlow WithContext Invisible + context hints footer; 182 features, >4,400 tests

- v1.41.0 - TagKey<T>, DomainTags, SystemTags typed tag access layer; ReasonTagExtensions (TryGet<T>, Has<T>); IErrorFactory<TSelf> static abstract interface; Result.Fail<TError>(string) typed factory; ReasonMetadata.PipelineStep/NodeId; REslava.Result.Flow: Gap 1 (lambda body step name), Gap 3 (variable initializer root), PipelineNode.NodeId, Mermaid node correlation block; 169 features, >4,300 tests

- v1.40.0 - ReasonMetadata + IReasonMetadata + ReasonMetadataExtensions; static error factories (ValidationError.Field, ForbiddenError.For, ConflictError.Duplicate/Duplicate<T>) with [CallerMemberName] capture; RESL1010 (unhandled failure path), RESL2002 (non-exhaustive ErrorsOf.Match), RESL1021 (multi-arg IError ctor); REslava.ResultFlow ErrorHint failure-edge annotation; 158 features, >4,300 tests

  • v1.39.1 - Minor update: Fixed and updated NuGet package REslava.Result README

- v1.39.0 - OneOf sealed class (struct→class) + T7/T8 arities; OneOfBase<T1..T8> shared dispatch; IOneOf<T1..T8>; ErrorsOf<T1..T8> error union; Result<TValue,TError> typed pipeline with Bind×7/Map/Tap/Ensure×7+Async/MapError; Result.Flow type-read mode; 153 features, >4,000 tests

- v1.38.1 - Chain walker bug fix (static roots + async extension methods); REslava.Result.Flow REF002 + Code Action (type travel + typed error edges, mermaid fence); REslava.ResultFlow mermaid fence format; samples/result-flow + samples/resultflow-fluentresults new samples; 142 features, >3,900 tests

- v1.38.0 - RESL1009 try/catchβ†’Try analyzer + code fix; ⚑ async annotation + success type travel in REslava.ResultFlow; REslava.Result.Flow native companion package (typed error edges, IResultBase type travel, IOperation chain walk); 140 features, 3,983 tests

- v1.37.0 - Switch/SwitchAsync void dispatch, MapError/MapErrorAsync error-path transform, Or/OrElse/OrElseAsync fallback on failure; Task extensions for all three; 136 features, 3,960 tests

- v1.36.0 - REslava.ResultFlow standalone package (library-agnostic), REF002 + Code Action (insert diagram as comment), convention dictionary for ErrorOr + LanguageExt, resultflow.json config, REslava.Result.AspNetCore rename, 133 features, 3,783 tests

- v1.35.0 - [ResultFlow] source generator: auto-generate Mermaid pipeline diagrams at compile time, Generated.ResultFlow.{Class}_Flows constants, REF001 diagnostic, 128 features, 3,768 tests

- v1.34.0 - IResultResponse<T> β†’ IResultBase<T> breaking rename (correct semantic naming), documentation gaps filled (Http, generator setup, ConversionError), 123 features, 3,756 tests

- v1.33.0 - REslava.Result.Http 5th NuGet package (HttpClient β†’ typed Result<T>), README/TOC/MkDocs restructure, 123 features, 3,756 tests

- v1.32.0 - Result.Validate applicative validation (2/3/4-way), Result<T>.Deconstruct() tuple unpacking, Maybe<T>↔Result<T> interop, 117 features, 3,696 tests

- v1.31.0 - Result.WithLogger/LogOnFailure ILogger integration, Result.Recover/RecoverAsync railway recovery, Result.Filter/FilterAsync predicate-based success filtering, 114 features, 3,591 tests

- v1.30.0 - Result.Catch<TException> inline exception handling in pipelines, Result.WithActivity OTel Activity enrichment, 111 features, 3,432 tests

- v1.29.0 - IsFailed β†’ IsFailure rename (breaking), 3 new console samples (ValidationDSL, OneOf5/6, AsyncPatterns), FastMinimalAPI validation showcase, FastMvcAPI parity, Feature Reference page, 3,339 tests

- v1.28.0 - FluentValidation Bridge (REslava.Result.FluentValidation β€” optional migration bridge, new projects don't need it), [FluentValidate] generator, SmartEndpoints IValidator<T> auto-injection, RESL1006 dual-attribute analyzer, 26 new tests, 3,339 tests

- v1.27.0 - CancellationToken Support in SmartEndpoints, OneOf5/OneOf6 + OneOf4 fixes + chain extensions (ToFourWay↔ToSixWay), Native Validation DSL (19 methods on ValidatorRuleBuilder), DocFX full XML docs, 451 new tests, 3,313 tests

- v1.26.0 - RESL1005 domain error suggestion analyzer, SmartEndpoints auto-validation ([Validate] on body param type injects .Validate() into lambda), 19 new tests, 2,862 tests

  • v1.25.0 - Documentation Site & API Reference: MkDocs Material website, DocFX Bootstrap landing page, CI path filtering, pipeline fixes, 2,843 tests

- v1.24.0 - Compile-Time Validation Generator: [Validate] attribute generates .Validate() β†’ Result via Validator.TryValidateObject, 7 new tests, 2,843 tests

- v1.23.0 - SmartEndpoints Production Readiness: Endpoint Filters ([SmartFilter]), Output Caching (CacheSeconds), Rate Limiting (RateLimitPolicy), 11 new tests, 2,836 tests

- v1.22.0 - Domain Error Completeness: OneOf<>.ToActionResult() MVC generator, OneOfToIResult tag-based error mapping, SmartEndpoints accurate OpenAPI docs (ValidationError β†’ 422), 12 new tests, 2,825 tests

- v1.21.0 - ASP.NET MVC Support: Result.ToActionResult() source generator (convention-based + explicit overload), FastMvcAPI demo app, 9 new tests

- v1.20.0 - Domain Error Hierarchy (NotFoundError, ValidationError, ConflictError, UnauthorizedError, ForbiddenError), domain error-aware ResultToIResult HTTP mapping, 150 new tests, internal quality fixes

- v1.19.0 - RESL1004 Async Result Not Awaited analyzer + CancellationToken support throughout

  • v1.18.0 - Task-Based Async Patterns: WhenAll (typed tuples), Retry (exponential backoff), Timeout
  • v1.17.0 - JSON Serialization Support: JsonConverter for Result, OneOf, Maybe with System.Text.Json
  • v1.16.0 - Tailored NuGet READMEs for each package
  • v1.15.0 - Repository cleanup: removed Node.js toolchain, stale samples, templates; emoji standardization (πŸ“ for architecture)

- v1.14.2 - Analyzers Phase 2+3: RESL1003 (prefer Match), RESL2001 (unsafe OneOf.AsT*), code fixes for RESL1001 & RESL2001, shared GuardDetectionHelper

  • v1.14.1 - Internal refactor: consolidated OneOf2/3/4ToIResult generators into single arity-parameterized OneOfToIResult (15 files β†’ 7)

- v1.14.0 - NEW: REslava.Result.Analyzers package (RESL1001 unsafe .Value access, RESL1002 discarded Result), package icons for all NuGet packages

  • v1.13.0 - SmartEndpoints Authorization & Policy Support (RequireAuthorization, AllowAnonymous, Roles, Policies, Produces(401))
  • v1.12.2 - SmartEndpoints OpenAPI metadata auto-generation (Produces, WithSummary, WithTags, MapGroup)
  • v1.12.1 - SmartEndpoints DI + async support, FastMinimalAPI demo, Console samples
  • v1.12.0 - OneOf4ToIResult generator, enhanced SmartEndpoints
  • v1.11.0 - SmartEndpoints generator for zero-boilerplate API generation
  • v1.10.3 - OneOf2ToIResult & OneOf3ToIResult generators
  • v1.10.2 - Initial ResultToIResult generator
  • v1.10.1 - Core Result types and error handling
  • v1.10.0 - Framework foundation with ROP patterns