## dotnet/orleans — v10.2.2…v10.3.0-rc.1

_338+ commits._

### Features
- **feat(membership): detect local stalls during direct probes (#9979)** (26913b3)
- **feat: add file-based grain storage provider (#9537)** (5943103)
- **feat(streaming): add Event Hubs Aspire support (#9328)** (43118bb)
- **feat(streaming): add SQS data adapters and FIFO support (#8723)** (56a6339)
- **feat(streaming): support stateless worker consumers (#10657)** (2047c84)
- **feat(durable-jobs): support successful rescheduling (#10716)** (7c04db7)
- **feat(codegen): support custom grain-call return types (#10682)** (b7a9e3e)
- **feat(storage): add System.Text.Json grain storage serializer (#9505)** (dce21b0)
- **feat(templates): add Orleans application templates (#10646)** (7047cbc)
- **feat(streaming): support compact JSON Azure Queue migration (#10507)** (12e7685)
- **feat(samples): add basic clustering sample (#10622)** (1059732)

### Fixes
- **fix(test): follow latest reminder reconciliation (#10815)** (3604a08)
- **fix(docs): remove recovered NuGet links from allowlist (#10818)** (91a82ac)
- **fix(streaming): reject active implicit rewinds (#10662)** (3093d71)
- **fix(journaling): preserve snapshot reference scopes (#10800)** (3e92251)
- **fix(test): own SQL Server schema setup connection (#10803)** (92d7390)
- **fix(ci): preserve complete coverage data (#10787)** (7781005)
- **fix(test): isolate stateless worker stream deliveries (#10793)** (d57b672)
- **fix(test): await reminder range reconciliation (#10794)** (ca10657)
- **fix(deps): update Polly.Extensions to 8.6.5 (#10786)** (e406042)
- **fix(resilience): add grain placement resilience policies (#9819)** (7b29e9b)
- **fix(test): retry SQL Server setup login (#10774)** (e558829)
- **perf: optimize EventHub cache mapping (#10767)** (51e3f10)
- **fix(ci): collect coverage during test runs (#10755)** (22ebced)
- **fix(test): isolate membership completion waits (#10771)** (1d22af9)
- **fix(test): isolate EventSourcing counter perf tests (#10770)** (75267d5)
- **fix(journaling): await recovery before reporting write conflicts (#10739)** (b5abd01)
- **fix(test): synchronize manual repartitioning rounds (#10732)** (e6c24e8)
- **fix(transactions): release locks when cancel precedes prepare (#10743)** (75710be)
- **fix(ci): publish .NET test results with allowed actions (#10750)** (442beb9)
- **fix(test): retry SQL Server database reset (#10744)** (84f79eb)
- **fix(testing): stabilize Event Hubs resume startup (#10741)** (dd6b8ed)
- **fix(testing): make wait deadline tests deterministic (#10738)** (96c047f)
- **fix(docs): preserve reminder sidebar links (#10725)** (dfe063d)
- **fix(test): stabilize one-way call completion checks (#10717)** (467a035)
- **fix(testing): scope streaming resume wait deadlines (#10671)** (1c35c62)
- **fix(docs): redirect legacy GitHub Pages routes (#10718)** (8661727)
- **fix(tests): stabilize reminder tick condition test (#10703)** (3b2140e)
- **fix(templates): use shipped Orleans package version (#10690)** (c4b9813)
- **fix(codegen): use test host framework references (#10691)** (f67ce0e)
- **fix(streaming): defer acknowledgements for batched delivery (#10655)** (da77fd6)
- **perf(serialization): grow memory stream buffers geometrically (#10668)** (8765bc1)
- **fix(docs): redirect obsolete running application guide (#10673)** (9e0c978)
- **fix(docs): preserve code without markdown parser (#10660)** (166c372)
- **fix(docs): preserve angle brackets in code (#10658)** (041f684)
- **fix(streaming): release ADO.NET messages during queue handoff (#10574)** (b7444bc)
- **fix(persistence): make persistent state operations concurrency-safe (#10255)** (70dc490)
- **fix(directory): wait for active membership during startup (#10613)** (370b636)
- **fix(persistence): flow grain storage cancellation tokens (#10641)** (ca9552b)
- **fix(persistence): use a stable hash to pick the memory storage grain (#10617)** (41b9131)
- **fix(streaming): improve implicit-only subscription guidance (#10623)** (c24c5f4)
- **fix(docs): isolate parallel snippet build outputs (#10611)** (4aa05d3)
- **fix(rebalancing): honor latest suspension duration (#10614)** (2d2750d)
- **fix(tests): synchronize failed transaction restore (#10630)** (cb20a39)
- **fix(tests): allow restart addressing cancellation (#10636)** (1588ba0)
- **fix(reminders): reconcile stale-owner registrations (#10612)** (2705575)
- **fix(runtime): refresh stale empty directory views (#10625)** (bf262f2)
- **fix(docs): redirect legacy Orleans tutorials (#10619)** (5bb4069)
- **fix(runtime): synchronize version selector cache generations (#10597)** (6b30413)
- **fix(runtime): publish local shutdown membership state (#10596)** (0b6161f)
- **fix(runtime): preserve rebalancer state on shutdown (#10573)** (fca799f)
- **fix(docs): use native Orleans API links (#10564)** (3bc4ad9)
- **fix(streaming): serialize SQL Server queue commits (#10572)** (e666961)
- **fix(ci): retry transient dashboard npm restores (#10561)** (3413c3d)
- **fix(runtime)!: configure grain context before construction (#10565)** (8d5529b)
- **fix(dashboard): add ESLint flat configuration (#10567)** (a37926a)
- **fix(test): initialize ADO.NET fixtures asynchronously (#10560)** (c7f60d9)
- **perf(codegen): avoid runtime provider scanning (#10566)** (d3b2749)

### Backend
- **[Automated] Update API Surface Area (#10799)** (db14054)
- **Update vulnerable SSH.NET and nanoid dependencies (#10678)** (dbafcd0)

### Tests
- **test(transactions): synchronize local abort dispatch (#10791)** (21828f0)
- **test(streaming): await subscription cursor drain (#10792)** (e2c8455)
- **test(directory): defer upgrade invariants until convergence (#10795)** (4e36f5e)
- **test(reminders): add provider conformance TestKit (#10785)** (0875c90)
- **test(runtime): keep cancellation observers alive (#10790)** (24b0259)
- **test(directory): validate split handoff invariants (#10772)** (e0247e1)
- **test: disable DiffEngine in automated runs (#10769)** (60d24b1)
- **test: fix ConfirmationWorker retry timer race (#10768)** (3ad0f6c)
- **test(durable-jobs): isolate Azure storage per test (#10740)** (7b733d1)
- **test(runtime): make duplicate activation stress deterministic (#10742)** (b75d58f)
- **test(reminders): restore joined silos (#10709)** (3619e62)
- **test(directory): assert rolling upgrade invariants by phase (#10705)** (6673ff0)
- **test: reduce shutdown test timeout (#10698)** (34782c6)
- **test(runtime): keep one-way observers alive (#10707)** (053cb8e)
- **test(adonet): await SQL Server session drain (#10704)** (d64b206)
- **test(runtime): preserve zero-delay cancellation path (#10664)** (863865e)
- **test(reminders): serialize fixture refreshes (#10665)** (52860ab)
- **test(reminders): re-enable multi-grain join test (#10666)** (bf068e3)
- **test(runtime): reserve fake gateway port (#10669)** (4f22f4d)
- **test(reminders): synchronize Cosmos grain-type test (#10648)** (030bc30)
- **test(durable-jobs): avoid response timeout in concurrent scheduling (#10632)** (062bb22)
- **test(runtime): synchronize cancellation callback registration (#10609)** (3bbf563)
- **test(grain-directory): make shutdown migration deterministic (#10610)** (03b5d51)
- **test: stabilize interleaving cancellation test (#10638)** (773a104)
- **test: make membership cleanup tests deterministic (#10634)** (1582bfe)
- **test(adonet): stabilize SQL Server database resets (#10589)** (15e310d)
- **test: add model-based storage conformance to the persistence test kit (#10513)** (4cd47f4)
- **test(durable-jobs): align retry wait timeout (#10586)** (ff7456c)
- **test(durable-jobs): synchronize receiver completion (#10585)** (fefe9e8)
- **test(azure): wait for reminder service startup (#10571)** (a286621)
- **test(durable-jobs): synchronize fake-time polling (#10562)** (cfaa2be)

### Docs
- **docs: add deployment guides for supported hosting targets (#10746)** (9f3c125)
- **docs: add long-running reminder recipe (#10752)** (bcfe048)
- **docs: remove redundant maintenance labels (#10753)** (365d385)
- **docs: document Orleans Journaling (#10749)** (0159a5f)
- **docs(reminders): clarify loading-window scalability (#10737)** (6e124fa)
- **docs: split grain timers and reminders into focused pages (#10745)** (3abeebb)
- **docs: revise Orleans landing page (#10724)** (70a5e75)
- **docs(reminders): document DynamoDB configuration (#10711)** (95e4dd5)
- **docs: link grain unit-testing guidance (#10674)** (d467812)
- **docs: add advanced serialization codegen guide (#10715)** (15496ec)
- **docs: document cluster membership API (#10701)** (b5935aa)
- **docs(operations): add production cluster runbook guidance (#10675)** (af6ca31)
- **docs(streaming): clarify unsubscribe lifecycle (#10676)** (1e8dde4)
- **docs: clarify production deployment walkthrough (#10677)** (f518d0a)
- **docs(streaming): resolve stateless worker subscription guidance (#10654)** (a3964a1)
- **docs: add Markdown navigation overview (#10659)** (6c60fef)
- **docs(streaming): document data adapters (#10645)** (b90e19b)
- **docs: add grain unit-testing guidance (#10644)** (7b405ad)
- **docs: publish machine-readable Markdown (#10656)** (03bd309)
- **docs: show UseOrleans host configuration (#10647)** (28f5fc0)
- **docs: document Orleans metrics monitoring guidance (#10605)** (cb0803f)
- **docs: consolidate operational and security guidance (#10554)** (7d2aebb)
- **docs(streaming): explain Event Hubs slow-consumer pressure (#10628)** (a37d9bf)
- **docs: explain grain balancing and scaling (#10604)** (4fb62a9)
- **docs: clarify garbage collection configuration (#10606)** (b22de6f)
- **docs: add Orleans scenarios and use cases guide (#10603)** (43d95a2)
- **docs(streaming): add custom queue adapter guide (#10591)** (2895c65)
- **docs: document multi-host container networking (#10607)** (35095dd)
- **docs(persistence): clarify default provider registration (#10629)** (c627caf)
- **docs: clarify custom grain storage contract (#10590)** (01fa5b5)
- **docs(adonet): clarify production database configuration (#10593)** (de51685)
- **docs: document explicit grain deactivation and idle collection (#10578)** (d0be1e0)
- **docs: clarify observer vs stream guidance (#10579)** (583fc5a)
- **docs(reminders): clarify reminder timing constraints (#10580)** (1ae3f63)
- **docs(streaming): document external integrations (#10594)** (1d05b32)
- **docs: clarify generic host shutdown (#10582)** (1bd533b)
- **docs: improve contributor onboarding (#10592)** (e7197e9)
- **docs: update stale NGINX external link (#10584)** (6e23257)
- **docs: clarify client lifetime and reconnect guidance (#10581)** (b01a57a)
- **docs: fix grain service client registration (#10552)** (8e41ace)

### Chore
- **refactor(runtime): include file grain storage (#10806)** (961a9bc)
- **chore(test): align .NET 10 runtime package versions (#10758)** (085de95)
- **ci: report code coverage on pull requests (#10733)** (4312d97)
- **ci: publish .NET test results on pull requests (#10730)** (cae2fb6)
- **build(test): migrate from VSTest to Microsoft.Testing.Platform (#10726)** (387e2fa)
- **refactor(test): migrate to xUnit v3 (#10722)** (8d7594a)
- **refactor(testing): decouple persistence test kit from xUnit (#10692)** (e693f4b)
- **build(deps): bump dotnet-sdk from 10.0.302 to 10.0.400 (#10686)** (f1a3eb8)
- **refactor(runtime): centralize placement compatibility caching (#10599)** (b191ded)

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