Skip to content

Releases

v2.0.0-rc.1: Ducky 2.0.0-rc.1

Pre-release

Choose a tag to compare

@github-actions github-actions released this 11 Nov 00:55

[2.0.0-rc.1] - 2026-11-11

Features

  • slices: M1-01 SliceKey derivation and validation
  • errors: M1-03 error model, library actions and runtime codes
  • slices: M1-02 Slice reducers with exact-type matching
  • store: M1-04 StateSnapshot and Registry
  • store: M1-05 single-drainer dispatcher and store facade
  • store: M1-05b drain catch-all, BeforeProcessHook and SafeLogger
  • store: M1-06 CausalScope and depth guard
  • config: M1-08 DuckyBuilder, AddDucky and aggregated validation
  • store: M1-07 FailureRouter
  • di: M1-09 DI lifetimes and store identity
  • store: M1-10 init buffer, StoreInitialized and Restore
  • store: M1-11 core dispose
  • store: M1-12 WhenIdleAsync
  • selectors: M3-03 Selector.Define and SelectorDef memoization
  • middleware: M4-01 middleware hooks, veto and dispose ordering
  • selectors: M3-01 SubscriberList, IStore.Select and Selection
  • selectors: M3-02 typed Select<TState,T> fast path
  • middleware: M4-02 DispatchSystem for middleware-originated actions
  • effects: M2-01 Effect, Merge policy, EffectContext and materialization
  • effects: M2-02 effect failure observation
  • config: M2-08 constructor dependency check (DUCKY309)
  • effects: M2-03 quiescence, per-store effect-run scope and CountedForIdle
  • middleware: M4-03 middleware init, timeout and overflow abort
  • subscriptions: M3-01b subscriber isolation and re-entrancy
  • effects: M2-04 Switch policy, EffectRunToken and the run check
  • effects: M2-03b run registry and effect-aware dispose
  • effects: M2-05 Exhaust and Queue policies
  • effects: M2-07 EffectGroup and ctx.Run
  • store: M4-03b overflow abort through QueueWorkItem
  • store: M4-03c disposal during init and per-middleware dispose bounds
  • config: M4-05 middleware constructor check and materialization
  • store: M4-08 unhandled action check
  • json: M4-06 JSON gateway (UseJson, DuckyJson) and JsonElement restore
  • diagnostics: M4-07 action type names and unserializable degrade
  • store: M4-05b materialization versus disposal
  • diagnostics: M4-09 tracing and metrics
  • contract: M4-10 core contract closure
  • blazor: M5-02 AddBlazor, BlazorOptions, JsBridge and test fakes
  • entities: M9-03 EntityState<TKey,TEntity> normalized collection
  • draft: M10-01 draft core types and ListDraft
  • blazor: M6-01 ducky.js storage exports
  • persistence: M6-02 envelope reader and writer
  • blazor: M5-03 SubscriptionCore change-detection and render scheduling
  • blazor: M5-05 DuckyComponent, DuckyComponent, DuckyLayout
  • blazor: M5-06 DuckySelect, StoreSelectionExtensions, DuckyInitializer
  • blazor: M5-04 InteractivityGate and first-toucher hand-off
  • blazor: M6-04 Prerender handoff with seed take and SeedSettled
  • blazor: M6-06 browser prerender seed wait bounded by PrerenderSeedWaitTimeout
  • blazor: M6-03 Persist API, PersistenceSlice and registration validation
  • blazor: M6-05 prerender seed writing and wire budget
  • blazor: M6-07 hydration attempt, _issue lock, exactly one terminal
  • blazor: M6-09 large reads through IJSStreamReference
  • blazor: M6-10 PersistenceWriter, one serialized write loop per persisted key
  • blazor: M6-11 writer retry on provider failure, phase 5a flush and loss counting
  • blazor: M6-08 hydration failures, timeout and init-abort races
  • blazor: M6-12 ClearPersistedState removal command
  • blazor: M6-13b pause seeds carry dirty keys and the version map
  • draft: M10-02 element drafts, dictionary and set drafts
  • core: M9-01 SliceStore Zustand-style slice facade
  • migration: M13-10 1.x tombstones DUCKYM001-M008
  • testing: M9-04 TestStore over the real store with fake time
  • generators: M13-01 shared generator helpers, generator harness and AssemblyNameSanitizer
  • generators: M13-03 RegistrationGenerator core for slices and effects
  • generators: M13-02 DispatchExtensionsGenerator for action dispatch helpers
  • generators: M13-06 purity analyzers DUCKY001-003
  • testing: M9-05 SliceTest and EffectTest harnesses
  • generators: M13-09 DUCKY009 Select in markup/lifecycle
  • generators: M13-07 structural analyzers DUCKY005, 011, 012, 013, 014, 015
  • generators: M13-08 usage analyzers DUCKY004, 006, 008, 010, 016, 025
  • generators: M13-04 GEN-02 Prerender emission
  • generators: M9-04c DUCKY021 TestStore member arm
  • generators: M9-01c SliceStore analyzer arms DUCKY001-003, DUCKY010
  • generators: M10-04 draft generator pipeline, diagnostics and scalar members
  • generators: M13-04b GEN-02 PersistAttributeDefaults emission
  • generators: M10-05 draft generator collection, nested and nullable members
  • draft: M10-07 DUCKY106 escape analyzer, multi-assembly fixture, DUCKY901, Mutty caching port
  • draft: M10-07b DUCKY109 discarded draft-member result analyzer and DUCKY003 Draft-receiver exemption
  • reactive: M11-01 Ducky.Reactive host, bridge and middleware
  • blazor: M12-01 IDistributedCache provider and PersistStorage.Server
  • blazor: M12-02 server flush, retries, late-flush loss and last-writer-wins pins
  • reactive: M11-02 reactive failures and resubscribe
  • blazor: M7-01 ducky.js watch, relay and resync
  • blazor: M12-03 scope switch core
  • blazor: M7-02 CrossTabSync for .NET
  • blazor: M12-03b scope switch during init and initial hydration
  • blazor: M12-03c scope switch write retries, reconnect absorption, inert Server keys
  • blazor: M12-07 pause seeds across scopes
  • blazor: M7-02b cross-tab receipts, repair and scope events
  • blazor: M8-02 DevToolsMiddleware outbound
  • blazor: M8-01 ducky.js DevTools exports
  • blazor: M8-03 DevTools history, inbound and time travel
  • blazor: M8-03b DevTools inbound large messages, concurrency and declared types
  • generators: M11-05 reactive generator arms and PackageSmoke consumer
  • docs: M15-01 docs infrastructure with docfx, fence check and migration samples
  • blazor: M7-03 cross-tab convergence properties and current-value receipts
  • samples: M14-02 Samples.Server with .Client in Interactive Auto
  • samples: M14-01 standalone Samples.Wasm todo sample
  • samples: M14-07 Ducky Playground, a live feature showcase

Bug fixes

  • store: Bound property runs by progress, not wall clock
  • pipeline: M4-01b effects react to the action, not to the commit
  • blazor: M6-10b writer defer race and the ShouldSkip predicate
  • reactive: M11-02b reactive resubscribe races and replay
  • blazor: M7-03b drop receipts overtaken by own writes and own removals
  • blazor: M7-03c cross-tab receipt echo check after the count, SPEC 11.5/11.7 consistency
  • blazor: FLAKE-01 no re-signal of a scoped key after its scope-switch reset, race-free receipt tests
  • generators: M16-02b kill surviving mutants in Ducky.Generators
  • blazor: M16-02d kill surviving mutants in Ducky.Blazor
  • core: M16-02a kill surviving mutants in Ducky
  • build: CI-LOCKS locked restore independent of the SDK library-packs
  • blazor: BLAZOR-RERENDER schedule the change check under an empty context

Documentation

  • core: M15-02 core guides and threading contract
  • migration: M15-05 Ducky 1.x migration guide with compiled before/after samples
  • migration: M15-07 migration guides for Mutty, DuckyNext and blazor-state
  • migration: M15-06 Bustand, TheBlazorState and BlazorMVU migration guides
  • diagnostics: M15-04 diagnostics catalogue completeness
  • guides: M15-03 Blazor, Reactive and Draft guides
  • site: GitHub Pages home page, the rubber-duck review
  • site: M15-08 docs site generator replaces docfx
  • migration: M15-09 Fluxor, TimeWarp.State and state-container guides, compare page
  • site: M15-10 site polish, llms files, readable playground source
  • tutorial: M15-11 step-by-step tutorial, a duck shop from scratch
  • plan: BLAZOR-RERENDER story, stage 18, M16-04 and M16-05 depend on it

Engineering

  • concurrency: M1-13 concurrency suite I
  • concurrency: M1-14 concurrency suite II and linearizability
  • concurrency: M3-04 subscriber concurrency tests
  • causal-depth: M2-09 effect-driven causal depth tests
  • concurrency: M4-04 init and dispose concurrency tests
  • effects: M2-06 policy matrix and model-based effect property
  • aot: M3-05 AOT smoke covers store, effects, selectors
  • release: M16-03 release pipeline (gates, changelog, NuGet publish, GitHub release)
  • blazor: M6-13 seed/storage precedence acceptance tests
  • mutation: M0-15 skip irrelevant PRs, shard runs, additive-test baseline
  • mutation: M0-16 fail on Stryker safe mode, fix four untested methods
  • slicestore: M9-01b SliceStore inside effect runs and across stores
  • aot: M9-06 AOT smoke covers SliceStore and EntityState
  • blazor: M9-02 SliceStore in Blazor hosts
  • testing: M9-04b TestStore disposal bound and concurrent reads
  • draft-generators: M10-03 draft generator test harness
  • generators: M13-05 multi-assembly fixture for Ducky generators
  • packagesmoke: M13-11 PackageSmoke generator assertions
  • draft: M10-06 INV-26 property tests for Produce
  • reactive: M11-01b reactive twins of the core contract
  • blazor: M12-06 NonInteractive Server storage and static SSR pins
  • blazor: M11-03 pin that the prerender seed does not wait for a reactive load
  • blazor: M12-04 scope switch races
  • aot: M12-05 AOT smoke server persistence and DevTools payload
  • aot: M11-04 AOT smoke covers Draft and Reactive
  • audit: M16-01 nightly audit and benchmarks
  • e2e: M14-05 Interactive Auto, store identity and DevTools E2E
  • e2e: M14-04 cross-tab E2E against Samples.Server
  • e2e: M14-03 persistence, prerender and circuit resume E2E
  • e2e: M14-06 tr...
Read more

v1.0.292

Choose a tag to compare

@github-actions github-actions released this 04 Mar 22:58

Added

  • Added CHANGELOG
  • Initial Release of the package

v1.0.291

Choose a tag to compare

@github-actions github-actions released this 27 Feb 14:49
fd4d009

Added

  • Added CHANGELOG
  • Initial Release of the package

v1.0.290

Choose a tag to compare

@github-actions github-actions released this 25 Feb 07:03
ebe5bbd

Added

  • Added CHANGELOG
  • Initial Release of the package

v1.0.251

Choose a tag to compare

@github-actions github-actions released this 17 Apr 15:59
3735deb

Added

  • Added CHANGELOG
  • Initial Release of the package

v1.0.250

Choose a tag to compare

@github-actions github-actions released this 17 Apr 15:56

Added

  • Added CHANGELOG
  • Initial Release of the package

v1.0.245

Choose a tag to compare

@github-actions github-actions released this 02 Apr 21:15
1ecdcb9

Added

  • Added CHANGELOG
  • Initial Release of the package

v1.0.244

Choose a tag to compare

@github-actions github-actions released this 02 Apr 21:00
c3f600c

Added

  • Added CHANGELOG
  • Initial Release of the package

v1.0.241

Choose a tag to compare

@github-actions github-actions released this 01 Apr 17:38
1bba767

Added

  • Added CHANGELOG
  • Initial Release of the package

v1.0.230

Choose a tag to compare

@github-actions github-actions released this 30 Mar 15:44
efc73bc

Added

  • Added CHANGELOG
  • Initial Release of the package