Repository navigation
Releases
Releases · phmatray/Ducky
v2.0.0-rc.1: Ducky 2.0.0-rc.1
[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...
v1.0.292
v1.0.291
Added
- Added CHANGELOG
- Initial Release of the package
v1.0.290
Added
- Added CHANGELOG
- Initial Release of the package
v1.0.251
Added
- Added CHANGELOG
- Initial Release of the package
v1.0.250
Added
- Added CHANGELOG
- Initial Release of the package
v1.0.245
Added
- Added CHANGELOG
- Initial Release of the package
v1.0.244
Added
- Added CHANGELOG
- Initial Release of the package
v1.0.241
Added
- Added CHANGELOG
- Initial Release of the package
v1.0.230
Added
- Added CHANGELOG
- Initial Release of the package