## dotnet/orleans — v10.1.0…v10.2.0

_164+ commits._

### Features
- **feat: Add grain_type tag to app-request timeout/cancel counters (#10178)** (c7c9f17)
- **feat(durablejobs,journaling): add tracing and batching metrics (#10151)** (8bac831)
- **feat(journaling-azure): add instrumentation and retry tuning (#10149)** (ec8939c)
- **feat(durablejobs): port to journaled storage catalog (#10148)** (c6c5826)
- **feat(runtime): add activation metrics (#10147)** (1482597)
- **feat(dashboard): add silo lifecycle dependency graph view (#10145)** (e93b593)
- **feat(client): broaden default client connection retry filter (#10140)** (3d892c8)
- **Add activation lifecycle latency metrics (#10125)** (433de4d)
- **Add concrete interface collection codec snapshots (#10106)** (20fc817)
- **Add interface collection codecs (#10104)** (5e16f6f)
- **Add JSONL format for Orleans.Journaling (#9973)** (aff0424)
- **Add distributed remote grain directory compatibility (#10050)** (f38dd83)
- **Add fast-path message destination cache (#10064)** (180f3d0)
- **Add ArcBuffer support to Orleans serialization (#10066)** (1fde981)
- **Add AdaptivePing benchmark with hill-climbing concurrency tuning (#10069)** (cd47834)
- **Add TTL cleanup to grain directory cache (#10055)** (816edb9)
- **Reminders: add lifecycle diagnostics and testing infrastructure (#10033)** (a9e73bd)
- **Add serializer conformance tests and baselines (#10034)** (2fc2123)
- **Add aliases in TypeConverter.ParseInternal, implement nullability, add JSON types (#10032)** (0e5e16b)
- **Add configurable storage type to NATS streaming provider (#10028)** (b5c347b)

### Fixes
- **Fix consistent ring provider test flake (#10220)** (0b4ee18)
- **fix(runtime): unregister shutdown activations from directory (#10206)** (372f5e6)
- **fix(streaming): prevent checkpoint gaps causing replay (#10096)** (05de890)
- **fix(storage): reduce Azure table retry pressure (#10192)** (d9656aa)
- **fix: stabilize activation rebalancing control test (#10189)** (bab4fb0)
- **fix: make bank transfer fault test deterministic (#10185)** (6a98474)
- **fix(redis): consistent grain directory disposal + multiplexer ownership tests (#10182)** (99d2455)
- **fix(nats): Validate StorageType and pin NATS test endpoint (follow-up to #10028) (#10176)** (70ffd6e)
- **fix(redis)!: fix multiplexer ownership (#10146)** (d33d395)
- **fix: repair API diff workflow (#10164)** (e8d276a)
- **Fix deterministic reminder scheduling waits (#10159)** (d1d9080)
- **fix(lifecycle): stabilize late registration scheduling (#10135)** (f94347e)
- **fix: make transaction fault test deterministic (#10157)** (1b700c0)
- **perf(durablejobs): improve journaled shard throughput (#10150)** (82fffe3)
- **fix(reminders): allow grains to update reminders during shutdown (#10155)** (f172a96)
- **fix(reminders): gate delivery on active silo (#10154)** (b71f434)
- **fix: validate connectivity before silo activation (#10153)** (65d3733)
- **perf(runtime): reduce request monitoring memory footprint (#10119)** (644d574)
- **perf(runtime): remove activation response state lock (#10141)** (c2076ee)
- **perf(runtime): receive activation response outside of lock (#10139)** (a0097bf)
- **[Transactions] Fix atomicity violation in storage failure handler during Confirm (#10123)** (e3ec1a0)
- **Fix activation collector memory pressure safety (#10113)** (392f878)
- **Fix grain lifecycle diagnostic listener name (#10121)** (e1253fb)
- **fix(analyzers): match by fully qualified name (#10107)** (28c0d98)
- **Fix Redis reminders affected by JsonConvert defaults (#10099)** (6c42a6e)
- **Fix Cosmos indexing paths for latest emulator (#10084)** (9d87ec9)
- **Fix LocalGrainDirectory membership reconciliation (#10086)** (80ef781)
- **Add directory migration join regression (#10049)** (ff4efb3)
- **Fix stateless worker late-delivery race test flake (#10077)** (4a9cf31)
- **Fix Cosmos reminder flake (#10059)** (6236eeb)
- **Fix TransactionResponse diagnostic formatting (#10083)** (165e2ab)
- **Fix DistributedGrainDirectory recovery handoff for activating grains (#10082)** (bd2c4e5)
- **Fix stuck deactivation recovery (#10046)** (dad46bf)
- **Fix immediate local reminder scheduling (#10040)** (b636dca)
- **ActivationCollector: Fix ArgumentException when cancelling indefinite keep-alive (#10014)** (7862787)

### Backend
- **[Automated] Update API Surface Area (#10204)** (a629b8e)
- **[Automated] Update API Surface Area (#10171)** (6d5cc57)
- **Auto-register `ITimerRegistry` component on `SystemTargets` (#10038)** (0a4a2fd)
- **Restore local grain directory lookup fast path (#10126)** (a211431)
- **Stabilize broadcast channel CI test waits (#10134)** (f704b02)
- **Make deactivation placement test deterministic (#10132)** (ec49a5f)
- **Avoid waiting for inactive repartitioning migrations (#10130)** (cb79283)
- **Stabilize activation rebalancer control test (#10131)** (6f5ca63)
- **Refactor InsideRuntimeClient response handling (#10128)** (929ef59)
- **Optimize response completion source (#10127)** (23c2876)
- **Avoid capturing context in outgoing call invoker (#10129)** (1e37980)
- **Implement remaining grain directory metrics (#10124)** (99ceff3)
- **Avoid per-activation scheduler logger fields (#10118)** (6f7a045)
- **[Automated] Update API Surface Area (#9986)** (5cb80ae)
- **[GitHub] Avoid disallowed API diff action (#10120)** (8a5cb63)
- **Clean up journaling storage provider APIs (#10112)** (5446387)
- **Enable nullable in memory storage provider builder (#10110)** (4d641ea)
- **Use immutable checkpoints for Azure journal compaction (#10103)** (faa91c0)
- **Limit deserialized cache invalidation headers (#10105)** (3e5ccff)
- **Stabilize async enumerable slow consumer tests (#10101)** (3d0da79)
- **Restrict maintenance workflows to upstream repo (#10102)** (38b1e35)
- **Avoid tracking deactivated grains in repartitioner state (#10061)** (94f33f1)
- **Bound retries after directory activation failures (#10094)** (0d06af2)
- **Refine directory forwarding retry checks (#10092)** (f54b559)
- **Remove directory failure forwarding optimization (#10095)** (ae12087)
- **Simplify LocalGrainDirectory membership processing (#10089)** (b739c41)
- **Refresh membership before directory RPC routing (#10088)** (15bc0a5)
- **Use membership versions for stale directory cleanup (#10087)** (deba6a7)
- **Batch large directory transfer payloads (#10053)** (61a0016)
- **Improve AdaptivePing convergence (#10076)** (c593aca)
- **Set target silo for cached silo connections (#10080)** (fcaa477)
- **Limit cache invalidation header growth (#10078)** (83709e0)
- **Cap distributed directory ownership transfer batch size (#10047)** (6705d86)
- **Document upstream PR workflow (#10056)** (4f6449a)
- **Remove CosmosDB CI test exclusions (#10042)** (3ec5bec)
- **Prevent post-shutdown stream agent calls (#10036)** (a2e0ab9)
- **Stop PlacementService workers during shutdown (#9993)** (06cb865)
- **Preserve Cosmos reminder ETags for stale delete checks (#10041)** (1589f23)
- **Handle missing Cosmos reminder deletes (#10037)** (61b69bf)
- **Use ObservableGauge for runtime memory metrics in EnvironmentStatisticsProvider (#10029)** (557c108)

### Tests
- **test: wait for liveness stabilization events (#10213)** (94443a5)
- **test: wait for queue balancer changes (#10212)** (de65930)
- **test: fix timer tests using FakeTimeProvider (#10216)** (ae88af8)
- **test: wait for upgrade cluster readiness (#10215)** (f476426)
- **test: add event waits for streaming client drops (#10208)** (097b774)
- **test: speed up membership health monitor tests (#10207)** (08784cb)
- **test: speed up runtime timer and collector tests (#10209)** (a1e14c6)
- **test: remove slow ring cleanup sleep (#10210)** (602c810)
- **test: stabilize grain directory rolling upgrade test (#10187)** (baa5795)
- **test: stabilize reminder and activation collection tests (#10186)** (998dc82)
- **test: make stream generator reset deterministic (#10188)** (0d1cdab)
- **test: make journaling recovery retry tests deterministic (#10170)** (c0ecfba)
- **test: stabilize prefer-local placement migration test (#10166)** (8bfda64)
- **test: fix deactivate-on-idle grain selection flake (#10163)** (999c8f2)
- **test: avoid eager activation in idle test (#10156)** (617c98a)

### Docs
- **docs: fix cluster membership heartbeat defaults (#10197)** (9bb90ea)
- **docs: require conventional commits (#10133)** (89a242d)

### Chore
- **ci: make MariaDB CI pulls resilient to timeouts (#10190)** (756d3d2)
- **chore(deps): bump dotnet-sdk from 10.0.300 to 10.0.301 (#10205)** (44e3f9a)
- **chore: remove static Orleans meter (#10201)** (9f22669)
- **chore: use meter factory for Event Hubs cache metrics (#10200)** (96b5426)
- **ci: update GitHub Actions to Node.js 24 (#10203)** (78ba189)
- **chore: use meter factory for stream receiver metrics (#10199)** (c51730d)
- **ci: make provider Docker pulls resilient (#10198)** (4340a9d)
- **ci: skip external asset builds in provider tests (#10196)** (13ec8e2)
- **ci: make Azure emulator Docker pulls resilient (#10191)** (b1564ea)
- **chore: use meter factory for event hub receiver metrics (#10195)** (6d80e26)
- **chore: use meter factory for stream cache metrics (#10194)** (e39d77e)
- **chore: use meter factory for environment statistics metrics (#10193)** (90de068)
- **chore: use IMeterFactory for MessagingProcessingInstruments (#10180)** (a1c3049)
- **chore: use IMeterFactory for AzureBlobJournalStorageInstruments (#10183)** (b413d0e)
- **chore: use IMeterFactory for JournalingInstruments (#10184)** (7880915)
- **chore: use IMeterFactory for DurableJobsInstruments (#10181)** (e29301a)
- **chore: use IMeterFactory for MessagingInstruments (#10179)** (84a82be)
- **chore: use IMeterFactory for StreamInstruments (#10177)** (a1e0893)
- **chore: use IMeterFactory for GrainInstruments (#10175)** (1948c22)
- **chore: use IMeterFactory for ReminderInstruments (#10172)** (ca301f6)
- **chore: use IMeterFactory for DirectoryInstruments (#10173)** (762f278)
- **chore: use meter factory for catalog metrics (#10168)** (299b1d4)
- **chore: use IMeterFactory for ClientInstruments (#10169)** (f05d6e4)
- **chore: use meter factory for storage metrics (#10162)** (fad6657)
- **chore(playground): add DurableJobs journaling playground (#10152)** (19ffa97)
- **ci: make artifact uploads non-blocking (#10158)** (edeedb2)
- **chore: Use IMeterFactory for consistent ring metrics (#10144)** (2cf96d5)
- **chore: Use IMeterFactory for scheduler metrics (#10143)** (43f503a)
- **chore: Use IMeterFactory for gateway metrics (#10142)** (c52a4fc)
- **chore: Use IMeterFactory for watchdog metrics (#10138)** (4b8cc08)
- **chore: Use IMeterFactory for networking metrics (#10137)** (a4aa8cf)
- **chore(deps-dev): bump vite from 5.4.21 to 8.0.11 in /src/Dashboard/Orleans.Dashboard.App (#9998)** (4660f3e)
- **chore(deps): bump dotnet-sdk from 10.0.203 to 10.0.300 (#10097)** (14f6c3e)
- **chore(deps): bump rollup from 4.52.5 to 4.60.3 in /src/Dashboard/Orleans.Dashboard.App (#9957)** (5989958)
- **chore(deps): bump postcss from 8.5.6 to 8.5.12 in /src/Dashboard/Orleans.Dashboard.App (#10043)** (13a025d)
- **chore(deps-dev): bump flatted from 3.3.3 to 3.4.2 in /src/Dashboard/Orleans.Dashboard.App (#9967)** (d66272b)
- **chore(deps): bump picomatch in /src/Dashboard/Orleans.Dashboard.App (#9974)** (a4dc641)
- **chore(deps): bump dotnet-sdk from 10.0.201 to 10.0.203 (#10015)** (a963946)

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