## dotnet/orleans — v10.3.1…v10.4.0

_293+ commits._

### Features
- **feat(codegen): generate AOT-safe C# private field accessors (#11372)** (de94cf0)
- **feat(testing): add membership provider conformance kit (#11308)** (f50fdee)
- **feat(journaling): support composition on plain grains (#11279)** (0f9537d)
- **feat(runtime): add shared grain activation setup (#11305)** (9303d4e)
- **feat(durable-jobs): support journal provider migration (#11277)** (2e40fa8)
- **feat(journaling): support named storage providers (#11275)** (3e9433e)
- **feat(journaling): measure catalog traversal and provider retries (#11259)** (9222be9)
- **feat(durable-jobs): discover shards by start time (#11258)** (0df71f4)
- **feat(metrics): use native request latency histogram (#11251)** (3e457bc)
- **feat(metrics): add canonical cached grain-type dimensions (#11253)** (4523dda)
- **feat(manifest): enable content-addressed retrieval by default (#11239)** (5efe793)
- **feat(streaming): configure memory stream dequeue limits (#11238)** (025bf9e)
- **feat(streaming): add reusable checkpoint state machine (#11154)** (bfef5e6)
- **feat(streaming): support provider-encoded cache offsets (#11153)** (d38e31d)
- **feat(journaling)!: stream catalog enumeration (#11211)** (60f3764)

### Fixes
- **fix(adonet): prevent SQLite transaction leaks (#11354)** (d4e4620)
- **fix(serialization): resolve compound-aliased array type names (#11392)** (cdb7961)
- **fix(zookeeper): preserve snapshot reads under contention (#11387)** (9bb744a)
- **fix(core): construct grain references without dynamic code (#11371)** (603f288)
- **fix(serialization): initialize serialization constructors under NativeAOT (#11373)** (b11593d)
- **fix(serialization): support NativeAOT default activation (#11369)** (ccd3f40)
- **perf(analyzers): skip generated code in GenerateSerializationAttributesAnalyzer (#11384)** (642b460)
- **fix(aot): preserve grain activation constructors (#11383)** (cc1a9ff)
- **fix(dashboard): stop statistics timer with grain service (#11359)** (171c262)
- **fix: collect idle migrated grain activations (#11365)** (3d84841)
- **perf(codegen): cache LibraryTypes per compilation (#11363)** (ef8c404)
- **fix(docs): serialize Windows Astro output (#11357)** (825aae7)
- **fix(testing): avoid dynamic client port allocation (#11348)** (5bebd17)
- **fix(codegen): escape reserved C# keywords in generated metadata namespace (#11349)** (6bf11ad)
- **fix(firestore): preserve atomic membership reads (#11342)** (8bc9fd2)
- **fix(journaling): serialize recovery retries and preserve persistence failures (#11326)** (b3184eb)
- **fix(zookeeper): make membership reads sequential and resilient (#11338)** (2dace6e)
- **fix(testing): tolerate cancellation during client kill (#11339)** (5858077)
- **fix(testing): handle narrow reminder owner ranges (#11336)** (b699424)
- **fix(clustering): synchronize torn point-read fault injection (#11334)** (79c24eb)
- **fix(adonet): preserve membership consistency (#11317)** (2994764)
- **fix(cosmos): preserve membership consistency (#11312)** (f278e80)
- **fix(firestore): preserve membership consistency (#11311)** (a5d7ae6)
- **fix(azure): preserve membership consistency (#11309)** (24d6be0)
- **fix(ci): select latest test-result artifacts by creation time (#11329)** (a1bd5f2)
- **fix(membership): preserve core membership invariants (#11307)** (53b0307)
- **fix(cassandra): preserve membership consistency (#11315)** (0952b83)
- **fix(zookeeper): preserve membership consistency (#11316)** (4266a8e)
- **fix(aws): preserve DynamoDB membership consistency (#11310)** (5267011)
- **fix(redis): preserve membership consistency (#11313)** (6b23fe0)
- **fix(consul): preserve membership consistency (#11314)** (e7ebbb9)
- **fix(adonet): return scalar SQLite persistence versions (#11322)** (dcf2925)
- **fix(ci): update coverage collector to 18.11.2 (#11321)** (665c966)
- **fix(membership): preserve canonical membership views (#11296)** (d515d75)
- **fix(journaling): activate configured journal providers (#11289)** (ad71848)
- **fix(testing): cancel draining after fatal silo errors (#11294)** (4bd1df8)
- **fix(aws): honor DynamoDB endpoint credentials (#11292)** (0c3aee0)
- **fix(aws): bind DynamoDB token and profile options (#11290)** (7d3b28d)
- **fix(streaming): bound NATS producer selection (#11287)** (89931bb)
- **fix(streaming): redact NATS endpoint credentials in logs (#11291)** (ab16bba)
- **fix(aws): redact DynamoDB tokens (#11288)** (ab71807)
- **fix(streaming): validate NATS stream dimensions (#11293)** (0273b7c)
- **fix(samples): isolate Razor compilation in CI (#11298)** (35f61ae)
- **fix(durable-jobs): unregister running shards during shutdown (#11301)** (0ba38cf)
- **fix(test): bind scheduler stress grains to their activation context (#11302)** (2075101)
- **fix(test): update MTP to 2.4.1 (#11299)** (eba0ccc)
- **fix(adonet): normalize integer reads (#11283)** (60be9d7)
- **fix(journaling)!: recover failed operations in new activations (#11276)** (02ae387)
- **perf(journaling): benchmark Azure storage providers (#11261)** (7193f06)
- **perf(serialization): read contiguous JSON payloads directly (#11270)** (b92f08a)
- **fix(test): avoid SQL Server single-user setup (#11271)** (115775a)
- **fix(streaming): drain detached pulling-agent work (#11268)** (fe7c512)
- **fix(streaming): remove defunct stream publishers (#10532)** (1544049)
- **fix: drain admitted client observer invocations during shutdown (#11264)** (8c4887a)
- **fix(journaling): bound Azure Table catalog key literals (#11257)** (3654f04)
- **fix(streaming): advance checkpoints past drained subscriptions (#11249)** (f64f1f1)
- **fix: drain connection establishment during shutdown (#11263)** (437bb05)
- **perf: streamline request context import (#11212)** (4fa1669)
- **fix(adonet): add missing CleanupDefunctSiloEntriesKey to Oracle clustering (#11246)** (8905026)
- **fix(adonet): align PostgreSQL persistence script with its migration (#11247)** (5a63e15)
- **fix(durable-jobs): drain scheduling and activation on shutdown (#11256)** (e97d385)
- **fix(streaming): await dropped client cleanup (#11260)** (59a8977)
- **fix(ci): retry transient test coordinator failures (#11244)** (60cd0e2)
- **fix(test): retain SQL setup ownership across batches (#11245)** (05644f0)
- **fix(runtime): honor membership and load cancellation lifetimes (#11237)** (76394f1)
- **fix(streaming): recover legacy sequence tokens (#11155)** (d42e018)
- **fix(ci): retry stalled coverage uploads (#11215)** (05ba800)
- **fix(docs): tolerate transient GitHub link throttling (#11229)** (3c844ee)
- **fix(streaming): migrate encoded-offset cache tests to result APIs (#11230)** (8b16573)
- **fix(streaming): satisfy checkpoint state analyzer (#11227)** (fc46efa)
- **fix(streaming): preserve pooled cache buffer ownership (#11152)** (baf91fa)
- **fix: report exact ring cardinality and cover range boundaries (#11221)** (0d9d302)
- **fix(ci): update SourceLink packages flagged by NU1902 (#11216)** (1644940)
- **fix: avoid virtual calls during construction (#11196)** (1198a14)
- **perf(serialization): optimize buffered tail reads (#11209)** (8d41994)
- **perf(durable-jobs): coalesce flush signals (#11206)** (0aa8547)
- **fix(runtime): use messaging clock for callback expiry (#11180)** (dd8c943)
- **fix(transactions): await recovery cleanup tasks (#11188)** (aceaa1a)
- **fix(test): skip unavailable providers (#11200)** (7edd67f)
- **fix(test): retry SQL Server setup ownership race (#11202)** (83e44e2)
- **perf(dashboard): cache grain state JSON options (#11190)** (c7e3032)
- **fix(runtime): specify continuation schedulers (#11194)** (8134c14)
- **fix(reminders): preserve cleanup failures (#11195)** (20cc17f)
- **fix(codegen): honor RPC parameter field IDs (#11179)** (0abd816)
- **fix(runtime): order ring range notifications (#11182)** (cad1d51)
- **fix(journaling): use ordinal identifier comparisons (#11177)** (2a07eaf)
- **fix(core): validate boundary arguments (#11178)** (59b90ef)
- **fix(journaling): validate JSON codec contracts (#11176)** (14cf193)
- **fix(serialization): validate support contracts (#11174)** (d6d928f)
- **fix(streaming): validate boundary arguments (#11172)** (a2403a0)
- **fix(analyzers): enforce CA1062 for Cosmos and S3 (#11171)** (98d0405)
- **fix(serialization): validate codec arguments (#11168)** (1a9ae77)
- **fix(core): preserve DI constructors when trimming (#11170)** (3ac47c1)
- **fix(analyzers): enforce disposable field ownership (#11167)** (0b0d7d1)
- **fix: define CA1815 value semantics (#11166)** (c39c1a7)
- **fix(analyzers): validate transaction test kit inputs (#11161)** (e68222a)

### Backend
- **revert(streaming): revert drained-subscription checkpoint advancement (#11330)** (39ea499)

### Tests
- **test(codegen): cover readonly record struct init setters (#11393)** (d114d75)
- **test(zookeeper): make close ordering assertion deterministic (#11347)** (ae7b1d3)
- **test(streaming): stabilize publisher restart endpoint (#11343)** (a68e9ed)
- **test(membership): wire provider conformance suites (#11332)** (81be59a)
- **test(adonet): drain reconnect workers during setup teardown (#11297)** (4f0de9e)
- **test: capture Windows net10 host diagnostics (#11300)** (4baffe6)
- **test(s3): use SeaweedFS (#11252)** (e69d956)
- **test(reminders): stabilize range-change barrier (#11197)** (2d3d544)
- **test(runtime): allocate heterogeneous silo ports at startup (#11201)** (71d8279)
- **test(analyzers): isolate nested restore from feeds (#11199)** (2cb3827)
- **test(runtime): derive one-way topology from directory owner (#11181)** (d17380b)
- **test(reminders): isolate range-read gate ownership (#11148)** (999f145)
- **test(runtime): remove stateless worker directory race (#11163)** (f7c3696)

### Docs
- **docs: remove unrelated POCO grains section from migration guide (#11240)** (cff4929)
- **docs: document formatting verification (#11198)** (fa0c7de)

### Chore
- **refactor(serialization): unify default object activation (#11390)** (a1a4676)
- **ci(aot): centralize NativeAOT smoke coverage (#11367)** (6430210)
- **ci: pin Consul GCR mirror with Docker Hub fallback (#11366)** (5993708)
- **ci: remove ZooKeeper failure diagnostics (#11341)** (8efd435)
- **ci: suppress dotnet coverage logo (#11340)** (202e203)
- **refactor(testing): guarantee reminder owner placement (#11337)** (0bfd95e)
- **refactor(journaling): separate durable state and journal APIs (#11319)** (598c0d2)
- **chore(deps): bump devalue from 5.8.2 to 5.9.2 in /docs/site (#11320)** (986e5c7)
- **chore(deps): bump dotnet-sdk from 10.0.400 to 10.0.401 (#11281)** (68f1f47)
- **build: upgrade xUnit to 4.0.0 (#11274)** (1133353)
- **refactor: simplify transaction storage draining (#11267)** (0650700)
- **refactor: gate ADO.NET receiver work (#11265)** (d0fd6c1)
- **refactor: gate client route publication quiescence (#11266)** (079c07f)
- **refactor(reminders): gate reminder delivery admission (#11262)** (2b04fff)
- **chore: add safe PR rebase and readiness reporting script (#11236)** (d77c873)
- **chore(deps): bump js-yaml from 4.3.1 to 4.3.2 in /docs/site (#11233)** (555950f)
- **ci: retry S3 test image pulls (#11231)** (3659812)
- **ci: retry transient NuGet metadata restore failures (#11218)** (44bf399)
- **chore(deps): bump smol-toml from 1.7.0 to 1.8.0 in /docs/site (#11234)** (6739589)
- **chore(deps): bump sharp from 0.35.3 to 0.35.4 in /docs/site (#11232)** (eba399a)
- **chore(deps): bump @vitest/mocker and vitest in /docs/site (#11228)** (ff548d7)
- **chore(deps): bump astro from 7.1.3 to 7.2.10 in /docs/site (#11224)** (80b39ef)
- **chore(deps): bump svgo from 4.0.2 to 4.1.0 in /docs/site (#11214)** (6d0e7ed)

_Recap by [Repo Wrapped](https://repowrapped.com/gh/dotnet/orleans?utm_source=github-action)._