| layout | default |
|---|---|
| title | Release Notes |
| description | Version history and release notes for Neatoo RemoteFactory |
| nav_order | 10 |
| has_children | true |
Version history for Neatoo RemoteFactory NuGet packages.
Releases with new features, breaking changes, or bug fixes.
| Version | Date | Highlights |
|---|---|---|
| v1.5.0 | 2026-04-14 | Breaking: entire [Event] method attribute API deleted — EventAttribute, FactoryOperation.Event, AuthorizeFactoryOperation.Event, IEventTracker, IEventScopeInitializer, EventTrackerHostedService, AddRemoteFactoryEventScopeInitializer, diagnostics NF0401-NF0404, log events 9001-9009. Consumers using [Event] for fire-and-forget work migrate to manual Task.Run + IServiceScopeFactory.CreateScope(). [FactoryEventHandler<T>], IFactoryEvents, IFactoryEventRelay, and ICorrelationContext are unchanged. |
| v1.4.0 | 2026-04-14 | Breaking: IFactoryEventRelay redesigned — single Relay(IReadOnlyList<FactoryEventBase>) hook replaces Register/Unregister; instance-method [FactoryEventHandler<T>] client path removed (NF0503 Warning). Feat: NoOpFactoryEventRelay default in Remote mode; [FactoryEvent] + [DynamicallyAccessedMembers] on FactoryEventBase with Inherited = true replace per-handler trimming codegen; UnknownFactoryEventTypeException. Fix: post-return ordering — Relay runs strictly after caller's continuation resumes (timing bug). |
| v1.3.0 | 2026-04-13 | Feat: CanSave(T target) overload on IFactorySave<T> runs both non-target and target-parameterized auth methods. Fix: auth method triplication in generated LocalCanSave / LocalSave — value equality on AuthMethodCall / AspAuthorizeCall. |
| v1.2.0 | 2026-04-13 | Fix: [FactoryEventHandler<T>] event records now round-trip correctly in Blazor WASM Release builds. Generator emits DtoConstructorRegistry.PreserveType<T>() for every event type plus nested records. New PreserveType<T>() primitive; [DynamicallyAccessedMembers(All)] added to Raise<T> and RegisterHandler<TEvent>. |
| v1.1.0 | 2026-04-10 | Breaking: [FactoryEventHandler<T>] runs in the caller's scope, sequentially, awaited — so handlers participate in the factory's DB transaction. RaiseOptions.AwaitRemote and RaiseOptions.ContinueOnFail removed. IFactoryEvents.Raise gains a CancellationToken. |
| v1.0.0 | 2026-04-10 | Production release — factory events ([FactoryEventHandler<T>] mediator + server-to-client relay, RaiseOptions.ServerOnly), API stability commitment |
| v0.29.0 | 2026-04-06 | Authorization target parameter support, type-based param matching tests |
| v0.28.0 | 2026-04-03 | IEventScopeInitializer for multi-tenant events, pipeline trace logging, fix parameter DTO trimming |
| v0.27.0 | 2026-03-31 | Recursive nested DTO discovery for IL trimming |
| v0.26.0 | 2026-03-29 | LazyLoad<T> inheritable for subclassing |
| v0.25.0 | 2026-03-28 | LazyLoad<T> for deferred async loading with full serialization support |
| v0.24.2 | 2026-03-27 | Fix event DI validation failure on Blazor WASM clients |
| v0.24.1 | 2026-03-26 | Fix missing global:: prefix in generated type references |
| v0.24.0 | 2026-03-25 | Trimming-safe DTO serialization via generator-emitted constructor registration |
| v0.23.2 | 2026-03-25 | Fix DTO deserialization under IL trimming |
| v0.23.0 | 2026-03-21 | Shared reference handling for mutable types, record bypass converter |
| v0.22.0 | 2026-03-20 | Serializer responsibility redesign: converter-level reference handling |
| v0.21.3 | 2026-03-20 | Fix record deserialization with $id/$ref metadata |
| v0.21.2 | 2026-03-08 | Trimming-safe factory registration for all factory types |
| v0.21.1 | 2026-03-08 | Fix factories trimmed when first overload has no callers |
| v0.21.0 | 2026-03-08 | [Remote] requires internal (breaking), Can* auth-driven guards, trimming fixes |
| v0.20.1 | 2026-03-07 | Fix internal methods excluded from public factory interfaces |
| v0.20.0 | 2026-03-07 | Serialization property rename (breaking wire format), internals appendix |
| v0.19.0 | 2026-03-07 | Trim-safe ordinal serialization |
| v0.18.0 | 2026-03-07 | Auth type trimming fix, IsTrimmable on domain assemblies |
| v0.17.0 | 2026-03-06 | Internal factory visibility, IL trimming, drop .NET 8 |
| v0.16.1 | 2026-03-02 | Fix net10.0 forced to v9 Microsoft.Extensions packages |
| v0.16.0 | 2026-02-28 | Hosted Blazor WebAssembly, PersonApp renamed to Person.Client |
| v0.15.0 | 2026-02-26 | Version reset from v10.x to v0.x pre-release |
| v0.14.0 | 2026-02-26 | CanSave on IFactorySave<T> |
| v0.13.0 | 2026-02-18 | [Execute] on class factories |
| v0.12.0 | 2026-02-01 | CorrelationContext DI redesign, event correlation propagation fix |
| v0.11.2 | 2026-01-18 | Fix nullable value type syntax in ordinal serialization |
| v0.11.1 | 2026-01-18 | Fix nullable typeof() in ordinal serialization |
| v0.11.0 | 2026-01-15 | Generator refactoring, exception stack trace fix |
| v0.10.0 | 2026-01-15 | Support for params parameters in factory methods |
| v0.9.0 | 2026-01-13 | Client-server code separation with FactoryMode.RemoteOnly |
| v0.8.0 | 2026-01-13 | Optional CancellationToken on all factory methods |
| v0.7.0 | 2026-01-11 | Fix duplicate Save method generation with multi-line parameters |
| v0.6.0 | 2026-01-07 | Fire-and-forget domain events with [Event] attribute |
| v0.5.0 | 2026-01-04 | Constructor injection compatibility, IL trimming documentation |
| v0.4.0 | 2026-01-04 | CancellationToken support with IFactoryOnCancelled lifecycle hooks |
| v0.3.0 | 2026-01-03 | Comprehensive logging with CorrelationId for distributed tracing |
| v0.2.0 | 2026-01-01 | Ordinal serialization (40-50% smaller payloads), breaking: default format changed |
- v1.5.0 - 2026-04-14 - Breaking:
[Event]method attribute API fully deleted (attribute,FactoryOperation.Event,AuthorizeFactoryOperation.Event,IEventTracker,IEventScopeInitializer,EventTrackerHostedService,AddRemoteFactoryEventScopeInitializer, NF0401-NF0404, log events 9001-9009). Migrate fire-and-forget to manualTask.Run+IServiceScopeFactory.CreateScope().[FactoryEventHandler<T>]/IFactoryEvents/IFactoryEventRelay/ICorrelationContextunchanged. - v1.4.0 - 2026-04-14 - Breaking:
IFactoryEventRelaysurface redesigned —Relay(IReadOnlyList<FactoryEventBase>)replacesRegister/Unregister; instance-method[FactoryEventHandler<T>]no longer generated (NF0503 Warning).NoOpFactoryEventRelaydefault in Remote mode;[FactoryEvent]+ trimming preservation onFactoryEventBasewithInherited = true. Fix: post-return ordering guarantee for relay dispatch. - v1.3.0 - 2026-04-13 - Feat:
IFactorySave<T>.CanSave(T target)overload runs target-aware authorization. Fix: auth method triplication in generatedLocalCanSave/LocalSave(value equality onAuthMethodCall/AspAuthorizeCall). - v1.2.0 - 2026-04-13 - Fix: Event records preserved from IL trimming in Blazor WASM Release builds; new
DtoConstructorRegistry.PreserveType<T>()primitive; call-site[DynamicallyAccessedMembers]onRaise<T>andRegisterHandler<TEvent>. - v1.1.0 - 2026-04-10 - Breaking:
[FactoryEventHandler<T>]shares the caller's DI scope — handlers participate in the factory's DB transaction.AwaitRemote/ContinueOnFailremoved;RaisegainsCancellationToken. - v1.0.0 - 2026-04-10 - Production release — factory events mediator + client relay, API stability commitment
- v0.29.0 - 2026-04-06 - Authorization target parameter support
- v0.28.0 - 2026-04-03 - IEventScopeInitializer, pipeline trace logging, fix parameter DTO trimming
- v0.27.0 - 2026-03-31 - Recursive nested DTO discovery for IL trimming
- v0.26.0 - 2026-03-29 - LazyLoad<T> inheritable for subclassing
- v0.25.0 - 2026-03-28 - LazyLoad<T> for deferred async loading
- v0.24.2 - 2026-03-27 - Fix event DI validation on Blazor WASM
- v0.24.1 - 2026-03-26 - Fix missing global:: in generated type references
- v0.24.0 - 2026-03-25 - Trimming-safe DTO serialization
- v0.23.2 - 2026-03-25 - Fix DTO deserialization under IL trimming
- v0.23.0 - 2026-03-21 - Shared reference handling for mutable types
- v0.22.0 - 2026-03-20 - Serializer responsibility redesign
- v0.21.3 - 2026-03-20 - Fix record deserialization with reference metadata
- v0.21.2 - 2026-03-08 - Trimming-safe factory registration for all factory types
- v0.21.1 - 2026-03-08 - Fix [DynamicDependency] trimming on multi-overload factories
- v0.21.0 - 2026-03-08 - [Remote] requires internal, trimming fixes
- v0.20.1 - 2026-03-07 - Fix internal methods on public factory interfaces
- v0.20.0 - 2026-03-07 - Serialization property rename & internals appendix
- v0.19.0 - 2026-03-07 - Trim-safe ordinal serialization
- v0.18.0 - 2026-03-07 - Auth type trimming fix, IsTrimmable
- v0.17.0 - 2026-03-06 - Internal factory visibility & IL trimming
- v0.16.1 - 2026-03-02 - Fix net10.0 package versions
- v0.16.0 - 2026-02-28 - Hosted Blazor WebAssembly
- v0.15.0 - 2026-02-26 - Version reset from v10.x to v0.x
- v0.14.0 - 2026-02-26 - CanSave on IFactorySave<T>
- v0.13.0 - 2026-02-18 - [Execute] on class factories
- v0.12.0 - 2026-02-01 - CorrelationContext DI redesign
- v0.11.2 - 2026-01-18 - Nullable value type syntax fix
- v0.11.1 - 2026-01-18 - Nullable typeof() fix
- v0.11.0 - 2026-01-15 - Generator refactoring
- v0.10.0 - 2026-01-15 - Support for params parameters
- v0.9.0 - 2026-01-13 - Client-server code separation
- v0.8.0 - 2026-01-13 - Optional CancellationToken on factory methods
- v0.7.0 - 2026-01-11 - Parameter whitespace bug fix
- v0.6.0 - 2026-01-07 - Fire-and-forget domain events
- v0.5.0 - 2026-01-04 - Constructor injection compatibility
- v0.4.0 - 2026-01-04 - CancellationToken support
- v0.3.0 - 2026-01-03 - Logging with CorrelationId
- v0.2.0 - 2026-01-01 - Ordinal serialization
- v0.1.1 - 2026-01-01 - Version metadata fix
When creating release notes for a new version:
Create docs/release-notes/vX.Y.Z.md:
---
layout: default
title: "vX.Y.Z"
description: "Release notes for Neatoo RemoteFactory vX.Y.Z"
parent: Release Notes
nav_order: N # Newest = 1, increment existing pages
---
# vX.Y.Z - Short Title
**Release Date:** YYYY-MM-DD
**NuGet:** [Neatoo.RemoteFactory X.Y.Z](https://nuget.org/packages/Neatoo.RemoteFactory/X.Y.Z)
## Overview
Brief 1-2 sentence summary of what this release delivers.
## What's New
- Feature additions with examples (or "None")
## Breaking Changes
- Any incompatible changes (or "None")
## Bug Fixes
- Resolved issues (or "None")
## Migration Guide
Step-by-step instructions for upgrading from previous version (if applicable).
## Commits
- `hash` - Commit message- Highlights table: Add if the release has new features, breaking changes, or bug fixes
- All Releases list: Always add (newest at top)