Repository navigation
0.8.0
What's Changed
- docs: refresh roadmap and StackExchange.Redis 3.3 comparison by @thomhurst in #903
- feat: complete JSON merge, length, and power commands by @thomhurst in #905
- docs: assess subkey notification cache guarantees by @thomhurst in #904
- feat: persist ASP.NET Core DataProtection keys with Respire by @thomhurst in #906
- feat: add sorted-set rank results with scores by @thomhurst in #925
- feat: support Unix domain socket endpoints by @thomhurst in #914
- feat: add COPY destination database to typed key commands by @thomhurst in #919
- docs: clarify typed JSON projection reply shapes by @thomhurst in #923
- feat: add typed server flush modes and deferred commands by @thomhurst in #918
- feat: add ASP.NET Core health checks for existing Respire clients by @thomhurst in #915
- feat: add Redis 8.10 TimeSeries ranges, labels, and blocking reads by @thomhurst in #935
- ci: consolidate PR workflows to cut runner usage by @thomhurst in #942
- feat: add interoperable ASP.NET Core output caching by @thomhurst in #913
- feat: retry watched transactions after WATCH conflicts by @thomhurst in #920
- feat: add typed Sentinel administration by @thomhurst in #922
- feat: make direct-array JSON projection decoding explicit by @thomhurst in #941
- feat: resolve DataProtection clients from dependency injection by @thomhurst in #938
- feat: add typed multi-element list moves by @thomhurst in #946
- refactor: avoid splitting Sentinel version lines by @thomhurst in #953
- feat: add conditional ZADD options across command queues by @thomhurst in #916
- feat: add cumulative stream read limits by @thomhurst in #943
- feat: expose an opt-in health probe contract for custom clients by @thomhurst in #948
- feat: add typed INCREX counters and verify rate-limit compatibility by @thomhurst in #945
- feat: map existing Redis client metrics to standard names by @thomhurst in #939
- feat: add field-only hash scans and queued pages by @thomhurst in #921
- feat: configure stream idempotency with XCFGSET by @thomhurst in #940
- test: parallelize test suites and share Redis containers by @thomhurst in #955
- perf: restore direct string decode for GetStringAsync by @thomhurst in #985
- perf: bypass JSON reader for canonical numeric values by @thomhurst in #988
- perf: use XxHash3 in version 2 value codec frames by @thomhurst in #989
- perf: keep fully buffered bulk replies in the receive drain by @thomhurst in #993
- feat: protect output-cache replacements with generation-aware tags by @thomhurst in #987
- feat: supply primary uncached reads to WATCH callbacks by @thomhurst in #984
- feat: add set difference and union cardinalities by @thomhurst in #936
- perf: remove MGET converter closures and reuse validated slots by @thomhurst in #990
- test: fix flaky unit tests and drop the unit test parallelism cap by @thomhurst in #1006
- feat: add typed Search suggestion dictionaries by @thomhurst in #1003
- feat: add typed client list and kill filters by @thomhurst in #947
- perf: fill large byte GET replies into caller-owned arrays by @thomhurst in #994
- refactor: validate client filter strings when appending by @thomhurst in #1010
- Document MGET contracts and wait for Search indexing readiness by @thomhurst in #1007
- feat: add Search synonyms and tag values by @thomhurst in #1004
- perf: reuse bounded Zstandard compression contexts by @thomhurst in #1002
- perf: remove JSON and Deflate intermediate payload copies by @thomhurst in #992
- refactor: centralize Search suggestion option assembly by @thomhurst in #1011
- Add typed node-local Search configuration commands by @thomhurst in #1005
- test: fix flaky Search integration test racing the FT.CREATE scan by @thomhurst in #1012
- feat: add connection-bound hash import sessions by @thomhurst in #952
- feat: add Search index inventory and aliases by @thomhurst in #1001
- feat!: make Redis command and cache metrics opt-in by @thomhurst in #991
- refactor: centralize pooled JSON serialization and guard write lifetime by @thomhurst in #1014
- feat: add Search dictionaries and spellcheck by @thomhurst in #1015
- feat: add grouped client include and exclude filters by @thomhurst in #1021
- perf: bound canceled and discarded bulk reply storage by @thomhurst in #1019
- feat: add typed Search query profiling by @thomhurst in #1013
- chore(deps): update anthropics/claude-code-action digest to 6c69018 by @thomhurst in #1033
- build: enforce five performance analyzer rules by @thomhurst in #1034
- feat: observe pubsub messages and explicit stream processing by @thomhurst in #1037
- perf: migrate dedicated synchronization gates to System.Threading.Lock by @thomhurst in #1020
- perf: use connection deadline sweep for transaction commits by @thomhurst in #1018
- test: cover coalesced flush wakes and producer pauses by @thomhurst in #1031
- fix: await lifecycle cleanup and enforce CA1849 by @thomhurst in #1039
- fix: bound aggregate storage before trusting reply counts by @thomhurst in #1026
- refactor: consolidate typed friend-test inspection by @thomhurst in #1042
- test: prevent retirement fixtures from starving thread-pool cleanup by @thomhurst in #1041
- chore(deps): update redis:8.10 docker digest to 8aee659 by @thomhurst in #1051
- fix!: use RespireTimeoutException for private connect deadlines by @thomhurst in #1043
- refactor: consolidate restartable parser context by @thomhurst in #1050
- perf: eliminate disabled lifecycle logging allocations by @thomhurst in #1049
- chore(deps): update anthropics/claude-code-action digest to 86d88e6 by @thomhurst in #1057
- perf: remove redundant pooled response dispatch by @thomhurst in #1052
- refactor: share batch and transaction connection policy by @thomhurst in #1059
- test: fix skipped migration listener initialization by @thomhurst in #1060
- build: enforce all source performance analyzers by @thomhurst in #1062
- perf: pool typed serialization scratch and avoid JSON boxing by @thomhurst in #1058
- chore(deps): update redis:8.10 docker digest to c94085d by @thomhurst in #1068
- chore(deps): update actions/setup-python action to v6.3.0 by @thomhurst in #1069
- test: isolate dispatched flush allocation measurements by @thomhurst in #1067
- feat: add stream consumer recovery options by @thomhurst in #1056
- test: enforce friend inspection architecture by @thomhurst in #1053
- test: harden isolated allocation probe startup and cleanup by @thomhurst in #1071
- chore(deps): update dependency python to 3.14 by @thomhurst in #1072
- chore(deps): update actions/setup-python action to v7 by @thomhurst in #1073
- perf: route ready Sentinel commands through direct reply sources by @thomhurst in #1055
- feat: add typed Redis sparse array commands by @thomhurst in #1066
- chore(deps): update redis:8.10 docker digest to c94085d by @thomhurst in #1078
- feat: add standard connection lifecycle metrics by @thomhurst in #1038
- chore(deps): update dependency microsoft.testing.extensions.hangdump to 2.5.0 by @thomhurst in #1080
- test: make stale READONLY discovery deterministic by @thomhurst in #1079
- perf: share typed reply eligibility and verify ready-send strategies by @thomhurst in #1074
- Add explicit node lifecycle and administration commands by @thomhurst in #1077
- feat: expand typed Search options and result metadata by @thomhurst in #1091
- docs: add runnable Cluster and Sentinel samples by @thomhurst in #1090
- perf: eliminate per-key prefix allocations and initialize facets lazily by @thomhurst in #1047
- ci: verify Cluster and Sentinel samples against owned Redis topologies by @thomhurst in #1095
- perf: decode net8 ASCII directly with unchanged initialization policy by @thomhurst in #1035
- perf: use typed replies for ready cluster commands by @thomhurst in #1087
- docs: add ASP.NET Core cache and telemetry sample by @thomhurst in #1088
- chore(deps): update redis docker tag to v8.10 by @thomhurst in #1096
- fix: retry verified standalone container bind collisions by @thomhurst in #1092
- fix: verify sample topology health and stop on child exits by @thomhurst in #1097
- fix: harden topology smoke cleanup and promotion evidence by @thomhurst in #1098
- feat: add typed Redis atomic slot migration commands by @thomhurst in #1102
- fix!: preserve unsigned epochs in ClusterInfo results by @thomhurst in #1105
- perf: evaluate bounded lifecycle metric delivery and protect isolation by @thomhurst in #1100
- feat: add explicit-node Cluster slot and topology administration by @thomhurst in #1094
- feat: add typed Valkey slot migration and slot deletion by @thomhurst in #1106
- test: stabilize shutdown wire receipt and local completion coverage by @thomhurst in #1104
- docs: archive lifecycle dispatch investigation fixture by @thomhurst in #1110
- test: cancel pending Cluster epoch convergence commands by @thomhurst in #1111
- chore(deps): update redis docker tag to v8.10 by @thomhurst in #1103
- Add FusionCache backplane with shared Respire client support by @thomhurst in #1117
- docs: explain FusionCache recovery after reconnect exhaustion by @thomhurst in #1121
- .NET Aspire: configure Respire clients, caches, and telemetry by @thomhurst in #1116
- feat: add typed Valkey CLUSTERSCAN pages and database ACL guidance by @thomhurst in #1112
- chore(deps): update anthropics/claude-code-action digest to 5898584 by @thomhurst in #1125
- chore(deps): update aspire to 13.6.1 by @thomhurst in #1126
- chore(deps): update actions/upload-artifact action to v7.0.2 by @thomhurst in #1127
- chore(deps): update actions/download-artifact digest to 9000827 by @thomhurst in #1128
- docs: retain per-page TimeSeries follower leases after measurement by @thomhurst in #1123
- Support binary key-prefix views and byte-safe scan checkpoints by @thomhurst in #1122
- Add FusionCache distributed locker using shared Respire fenced leases by @thomhurst in #1124
- Spread FusionCache locker polling and clarify cleanup by @thomhurst in #1131
- feat: detect unavailable Valkey scripting engines by @thomhurst in #1115
- Borrow commands through synchronous response conversion by @thomhurst in #1139
- Allow FusionCache leases to outlive caller cancellation by @thomhurst in #1132
- feat: configure default key prefixes by @thomhurst in #1138
- Precompute RESP headers, signed integer payloads, and fixed option frames by @thomhurst in #1143
- perf: reuse ASCII prefixes when writing UTF-8 arguments by @thomhurst in #1142
- chore(deps): update dependency tunit to 1.73.0 by @thomhurst in #1144
- chore(deps): update dependency microsoft.testing.extensions.hangdump to 2.5.1 by @thomhurst in #1145
- chore(deps): update anthropics/claude-code-action digest to 6fed3ca by @thomhurst in #1146
- Select resumable CLUSTERSCAN with legacy fallback by @thomhurst in #1141
- refactor: encapsulate UTF-8 frame rewrite reservation by @thomhurst in #1147
- feat: add explicit pub/sub prefix views by @thomhurst in #1151
- feat: add optional total lifetime for independent FusionCache leases by @thomhurst in #1148
- perf: separate connection counters and cache ring head by @thomhurst in #1152
- refactor: publish admitted ring slots once and guard counter spacing by @thomhurst in #1161
- perf: stamp command deadlines once before publication by @thomhurst in #1149
- docs: remove conflict-prone design docs and stale artifacts by @thomhurst in #1165
- perf: pre-pin Windows socket receive storage by @thomhurst in #1164
- fix: preserve MTP discovery in guarded dotnet test by @thomhurst in #1162
- ci: run benchmark workflows on net10.0 only by @thomhurst in #1168
- chore(deps): update dependency tunit to 1.73.5 by @thomhurst in #1167
- perf: share one payload buffer across complete aggregate replies by @thomhurst in #1150
- fix: honor SDK-aware test runner overrides by @thomhurst in #1174
- chore(deps): update redis:8.10 docker digest to 2c2dff7 by @thomhurst in #1171
- perf: retain bounded completion buffer spares for deep drains by @thomhurst in #1166
- perf: avoid watchdog gate entry for non-final replies by @thomhurst in #1173
- perf: avoid atomic decrement for the final reply owner by @thomhurst in #1170
- perf: reclaim small receive tails before another read by @thomhurst in #1169
- refactor: name receive compaction thresholds by @thomhurst in #1178
- perf: bound response pool retention with striped small buckets by @thomhurst in #1177
- fix: restrict Windows guard handle inheritance by @thomhurst in #1176
- perf: bound sparse aggregate copies and centralize retained results by @thomhurst in #1172
- perf: reserve command spans once and publish after serialization by @thomhurst in #1180
- perf: transfer completed aggregate prefixes to resumable parsing by @thomhurst in #1179
- fix: isolate benchmark cancellation by selected label by @thomhurst in #1182
- perf: reduce client-side cache read overhead by @thomhurst in #1184
- perf: defer cluster replica refresh closures by @thomhurst in #1191
- perf: select large-command serialization from current frame bounds by @thomhurst in #1190
- perf: reuse decoded strings from client cache misses by @thomhurst in #1192
- chore(deps): update actions/setup-node action to v7.1.0 by @thomhurst in #1203
- perf: skip empty shared-read invalidation gates by @thomhurst in #1197
- perf: reuse lazy command classification for client caching by @thomhurst in #1201
- fix: retry selected-port Docker bind collisions without for by @thomhurst in #1205
- fix: guard unfinished writer bytes and underestimated bounds in Debug by @thomhurst in #1199
- perf: reduce coalesced GET result allocation by @thomhurst in #1207
- perf: dispatch prepared standalone replica reads through typed sources by @thomhurst in #1204
- perf: retain typed replies with command duration metrics by @thomhurst in #1208
- Guard pooled router ValueTask consumption and replica policy consistency by @thomhurst in #1210
- perf: fence cached query inserts by key dependencies by @thomhurst in #1206
- feat: audit retry categories for commands and typed verbs by @thomhurst in #1218
- feat: add interoperable SignalR scale-out backplane by @thomhurst in #1211
- perf: reuse cleared query registration storage safely by @thomhurst in #1219
- fix: keep Renovate ASP.NET Core updates compatible with .NET 8 by @thomhurst in #1221
- Expose generation-safe command write outcomes for retries by @thomhurst in #1223
- perf: retain cache mutation fences through native retirement by @thomhurst in #1222
- perf: send large SET arrays without coalescing payload copies by @thomhurst in #1217
- feat: add opt-in tracked HybridCache L1 coherence by @thomhurst in #1227
- fix: restore gathered SET compilation after mutation fence integration by @thomhurst in #1235
- feat: host stream consumers with bounded concurrency and scoped handlers by @thomhurst in #1233
- fix: await HybridCache tag writes and retire observations outside the gate by @thomhurst in #1238
- fix: preserve allocation-free raced cache reads in Debug builds by @thomhurst in #1237
- feat: add isolated Redis error metric foundation by @thomhurst in #1243
- fix: reject reentrant HybridCache cleanup disposal by @thomhurst in #1244
- perf: cache published standalone replica entry identity by @thomhurst in #1273
- feat: generate scalar hash model codecs and key templates by @thomhurst in #1272
- feat: read and write generated hash models with partial HMGET reads by @thomhurst in #1274
- chore(deps): update anthropics/claude-code-action digest to 38c80c1 by @thomhurst in #1275
- feat: generate AOT-safe JSON model mappers by @thomhurst in #1276
- Add failure-only final-owner and borrower error observation leases by @thomhurst in #1271
- feat: propagate HybridCache tag invalidations across instances by @thomhurst in #1245
- chore(deps): update dependency testcontainers.redis to 4.16.0 by @thomhurst in #1279
- chore(deps): update dependency testcontainers to 4.16.0 by @thomhurst in #1278
- refactor: enforce client-cache admission at native dispatch by @thomhurst in #1239
- feat: add bounded endpoint circuit breaker foundation by @thomhurst in #1265
- chore(deps): update dependency awssdk.core to 4.0.102.9 by @thomhurst in #1281
- fix: disable automatic HTML reporting in core test project by @thomhurst in #1282
- feat: add generated hash field expiry and tracked updates by @thomhurst in #1277
- chore(deps): update anthropics/claude-code-action digest to 2dca132 by @thomhurst in #1292
- feat: generate Search schemas for mapped hash and JSON models by @thomhurst in #1294
- Reuse endpoint circuit core for failover health probes by @thomhurst in #1299
- Verify generated mapper Native AOT conformance on .NET 8 and .NET 10 by @thomhurst in #1302
- Measure generated mapper parity with bracketed handwritten controls by @thomhurst in #1304
- chore(deps): update dependency tunit to 1.73.19 by @thomhurst in #1306
- Add source-derived command route ownership guard by @thomhurst in #1293
- feat: expose categorized Redis error metrics by @thomhurst in #1044
- Add opt-in standalone endpoint circuit admission by @thomhurst in #1303
- Observe failures at pooled response boundaries by @thomhurst in #1310
- fix: report error metrics for entry preflight and fenced mutations by @thomhurst in #1311
- Complete Aspire sample workflow and smoke checks by @thomhurst in #1314
- Reduce repeated atomic writes when flush signals coalesce by @thomhurst in #1313
- Add typed LCS index matches and match-length options by @thomhurst in #1312
- Verify actual Prometheus exports against the pinned Redis dashboard by @thomhurst in #1315
- Add binary-safe StackExchange value interop and native command bridge by @thomhurst in #1317
- Reinvalidate cached mutations when response conversion fails by @thomhurst in #1321
- Fix typed command telemetry endpoint after maintenance handoff by @thomhurst in #1322
- Guard batch and transaction dispatch with endpoint circuits by @thomhurst in #1318
- Observe core dispatch retries and discarded replies with failure-only ownership by @thomhurst in #1316
- Avoid consumer head reads in cached capacity pre-checks by @thomhurst in #1325
- perf: send fitting standalone batches in one flush by @thomhurst in #1324
- feat: isolate circuit admission across Cluster data nodes by @thomhurst in #1329
- feat: observe typed facet preflight and conversion failures by @thomhurst in #1330
- perf: keep aggregate progress transfer off the buffered parsing loop by @thomhurst in #1331
- Add StackExchange compatibility for distributed cache and DataProtection by @thomhurst in #1323
- Count server and connection errors within failure-only operation owners by @thomhurst in #1333
- Count pub/sub control and recovery errors with failure-only owners by @thomhurst in #1332
- Retain stream read error ownership through validation and iteration by @thomhurst in #1338
- fix: count Lua script failures once per caller without success-path observation rental by @thomhurst in #1344
- Count Redis errors for raw, multi-key and blocking commands by @thomhurst in #1334
- fix: count Redis function failures once without success-path observation rental by @thomhurst in #1346
- Count scan errors through preflight and page cleanup by @thomhurst in #1343
- Retain payload stream and streamed upload error ownership by @thomhurst in #1345
- perf: format reserved integer frames once by @thomhurst in #1349
- fix: retain failure-only error ownership for native locks by @thomhurst in #1348
- fix: count semaphore failures once after cleanup without success-path observation rentals by @thomhurst in #1347
- fix: preserve read routing error ownership and retry counts by @thomhurst in #1352
- Count batch, transaction and deferred-result errors once by @thomhurst in #1350
- Add Hangfire hash/list commands and deferred batch support by @thomhurst in #1360
- fix: refresh pre-strategy Sentinel benchmark control by @thomhurst in #1354
- fix: retain failure-only error owners across cache routes by @thomhurst in #1351
- Remove raw-command response cancellation boxing by @thomhurst in #1362
- chore(deps): update dependency stackexchange.redis to 3.4.0 by @thomhurst in #1363
- Add Hangfire server discovery, atomic locks, and storage subscriptions by @thomhurst in #1366
- feat: add hash-backed VectorData collections and KNN search by @thomhurst in #1365
- Implement Hangfire key, string, set, and sorted-set compatibility by @thomhurst in #1364
- Add VectorData expression filters and filtered retrieval by @thomhurst in #1368
- Implement Hangfire transaction compatibility by @thomhurst in #1369
- Add AOT-friendly RedisJSON VectorData collections by @thomhurst in #1370
- Keep failover group members selected during smart client handoff by @thomhurst in #1367
- Recover idle stream deliveries with atomic attempt-fenced acknowledgement by @thomhurst in #1371
- perf: pool streamed upload state machines by @thomhurst in #1374
- Update anthropics/claude-code-action digest to 1d6de8c by @thomhurst in #1379
- Verify pinned Hangfire upstream tests and worker lifecycle by @thomhurst in #1378
- Add delivery limits and atomic fenced stream dead-letter completion by @thomhurst in #1382
- Update dependency Moq to 4.21.0 by @thomhurst in #1384
- Verify mixed stream recovery and poison completion after consumer outage by @thomhurst in #1386
- ci: pull Docker Hub images through mirror.gcr.io to stop rate-limit failures by @thomhurst in #1385
- docs: audit transport write-outcome performance and retention by @thomhurst in #1383
- Add capability-aware FT.HYBRID search to VectorData collections by @thomhurst in #1380
- fix: share bounded retry and final-publication bookkeeping by @thomhurst in #1381
- Add capability-aware stream worker CLAIM, XNACK and XACKDEL paths by @thomhurst in #1388
- Run official VectorData lifecycle conformance on hash and JSON by @thomhurst in #1393
- Update dependency xunit.v3.mtp-v2 to v4 by @thomhurst in #1394
- Pass official VectorData JSON conformance and normalize IP scores by @thomhurst in #1395
- Update dependency python to 3.15 by @thomhurst in #1400
- Preserve completed stream retries through circuit handoff by @thomhurst in #1401
- Preserve hedge retry counts and audit fan-out error ownership by @thomhurst in #1402
- fix: preserve deferred pending retry counts at overflow boundaries by @thomhurst in #1407
- perf: avoid async frame allocations in gathered SET completion by @thomhurst in #1408
- fix: preserve native response failures through cleanup by @thomhurst in #1409
- fix(cache): preserve nested producer and waiter retry counts by @thomhurst in #1406
- docs: mark feature-wave documentation and samples complete by @thomhurst in #1411
- refactor!: remove legacy health internals +semver:major by @thomhurst in #1414
- test: fix flaky MovingStaysInMemberAndRealOutageSwitchesGroup (wait for EndpointSwitched handler) by @thomhurst in #1418
- docs: complete Redis and Valkey typed command coverage by @thomhurst in #1413
- test: tolerate retried atomic slot migration failures in cluster import test by @thomhurst in #1417
- test: stabilize typed SET allocation comparison against one-off allocations by @thomhurst in #1421
- fix(test): serialize hybrid search tests that share Redis servers by @thomhurst in #1422
- fix: preserve batch and transaction deferred error ownership by @thomhurst in #1412
- test: scope remaining cache error metric listeners against detached work by @thomhurst in #1419
- test: attribute cached-caller allocation samples by @thomhurst in #1420
- ci: split the net10.0 suite into parallel jobs by @thomhurst in #1427
- test: wait for client cache flushes after ACL rotation by @thomhurst in #1416
- perf: skip cache invalidation store locks before first publication by @thomhurst in #1424
- fix(vectordata): write each hash record with one HSET so RediSearch indexes it once by @thomhurst in #1425
- Evaluate vector-set backend durability and contracts by @thomhurst in #1423
- Cover official VectorData hash backend contracts by @thomhurst in #1428
- test: avoid command timeout in maintenance handoff setup by @thomhurst in #1429
- perf: pool suspended streamed final-frame waits by @thomhurst in #1434
- fix: stabilize net8 allocation checks and container startup by @thomhurst in #1431
- fix(test): isolate search profile hybrid counts from concurrent index drops by @thomhurst in #1439
- ci: compare connection contention with original baseline by @thomhurst in #1430
- test: stop flush-signal resuming test from starving a 1-CPU thread pool by @thomhurst in #1436
- Audit script and function correction error ownership by @thomhurst in #1415
- fix(cluster): follow MOVED and ASK redirects without reconnect backoff by @thomhurst in #1443
- fix: reserve container fixture ports against outgoing connections by @thomhurst in #1444
- test: retry random-host-port bind collisions for every container start by @thomhurst in #1445
- perf(tests): cut unit, integration, analyzer and CI test time by @thomhurst in #1440
- fix(tooling): post review thread replies from a body file by @thomhurst in #1446
- Fix Cluster redirect discovery events and shared retry budgets by @thomhurst in #1438
- perf: share completion state with single-reply ownership by @thomhurst in #1435
- perf: restore counted single-reply release on completion hot path by @thomhurst in #1449
- Add stream worker metrics and W3C trace propagation by @thomhurst in #1387
- test: make KeepAlive_RenewsUntilItsScopeStops timing-robust by @thomhurst in #1450
- test: tolerate delayed polls in KeepAlive renewal assertion by @thomhurst in #1451
- test: cancel Redlock acquisition only after every node holds the SET by @thomhurst in #1452
- test: stop CapabilityCheckTimeoutKeepsTrackerRetryable timing out its retry under CI load by @thomhurst in #1453
- test: gate Redlock SET replies until cancellation by @thomhurst in #1454
- Isolate circuit admission across Sentinel data generations by @thomhurst in #1328
- test: let caller cancellation drive the gated Redlock test by @thomhurst in #1455
- test: wait for the reconnect gap before asserting hybrid tag observation by @thomhurst in #1456
- test: wait for fake server accept before idle disconnect assertion by @thomhurst in #1457
- test: measure batch start allocation in an optimized child probe by @thomhurst in #1458
- test: wait for reconnect gap consumption in hybrid tag test by @thomhurst in #1460
- test: always release Redlock reply gates by @thomhurst in #1459
- Add endpoint tags to Redis error metrics by @thomhurst in #1448
- Complete VectorData conformance coverage and AOT matrix by @thomhurst in #1461
- docs: point roadmap circuit breaker work at open issue #863 by @thomhurst in #1466
- Support expression filters on JSON VectorData collections by @thomhurst in #1468
- chore(deps): update dependency tunit to 1.74.0 by @thomhurst in #1471
- Assess Orleans Redis provider compatibility and document persistence/reminder gaps by @thomhurst in #1469
- Verify shim library conformance and document supported migration paths by @thomhurst in #1475
- Report endpoint circuit state transitions and rejection metrics by @thomhurst in #1467
- docs: disposition final-frame transport performance evidence by @thomhurst in #1476
- chore(deps): update dependency microsoft.orleans.clustering.redis to 10.4.0 by @thomhurst in #1484
- chore(deps): align Orleans Redis defaults at 10.4.0 and preserve assessment pins by @thomhurst in #1485
- Add scoped semantic chat response caching with atomic TTL by @thomhurst in #1482
- Support official Orleans Redis providers through compatibility adapter by @thomhurst in #1489
- perf: measure large SETs against the original baseline by @thomhurst in #1487
- Attribute standalone batch allocations with separate trace controls by @thomhurst in #1486
- chore(deps): update dependency polyfill to 11.4.4 by @thomhurst in #1492
- chore(deps): update dependency microsoft.diagnostics.netcore.client to 0.2.750501 by @thomhurst in #1491
- Capture selection code and scheduling for every measured launch by @thomhurst in #1488
- chore(deps): update dependency microsoft.diagnostics.tracing.traceevent to 3.2.8 by @thomhurst in #1493
- fix(deps): keep Orleans doc tests on the assessed version by @thomhurst in #1494
- bench: reproduce public GET regression against pinned control by @thomhurst in #1470
- feat: configure gathered-write stall bounds independently by @thomhurst in #1495
- Reuse completed exact MemoryStream fill tasks by @thomhurst in #1483
- feat: define conservative immediate-command retry policy by @thomhurst in #1500
- perf: diagnose residual streamed upload and GET allocation owners by @thomhurst in #1501
- feat: retry standalone immediate commands with write evidence by @thomhurst in #1502
- feat: compose immediate retries with Sentinel, Cluster, declared requests and failover groups by @thomhurst in #1503
- feat: refine typed SET/ZADD NX/XX retry categories; stop catalog SET argument refinement by @thomhurst in #1505
- test: audit immediate retry acceptance and add cross-path evidence by @thomhurst in #1506
- docs: publish completed immediate retry policy comparison by @thomhurst in #1511
- fix: load tag metadata before new HybridCache contexts read L2 by @thomhurst in #1512
- fix: let cluster retries follow failover instead of waiting on a lost owner by @thomhurst in #1510
- fix: apply retry policy to tracked Cluster cache producers by @thomhurst in #1516
- perf: cover retry owners and pin pre-retry default comparisons by @thomhurst in #1513
- perf: pool immediate retry frames and bypass healthy Sentinel discovery by @thomhurst in #1517
- fix: migrate tracked Cluster retries to pooled frame API by @thomhurst in #1519
- Audit causal transport diagnostics and preserve unmet aggregate acceptance by @thomhurst in #1527
- test: restore retry composition and publish aggregate acceptance evidence by @thomhurst in #1522
- feat: retry transient failures in watched transaction helpers by @thomhurst in #1529
- Pin corrected selection control comparison by @thomhurst in #1531
- feat: retry standalone and Sentinel batches as complete units by @thomhurst in #1530
- feat: retry unwatched MULTI/EXEC transactions as complete units by @thomhurst in #1528
- docs: point SignalR scale-out to Respire.SignalR instead of the compatibility adapter by @thomhurst in #1532
- perf: record corrected selection control comparison audit by @thomhurst in #1534
- feat: retry complete Cluster transactions and batch slot groups by @thomhurst in #1533
- test: report per-wake allocations and runtime events when a dispatched wake allocates by @thomhurst in #1535
- fix: record fresh Cluster cursor issuer in retry-enabled batches by @thomhurst in #1540
- fix: widen dispatched-wake event window by clock uncertainty by @thomhurst in #1541
- perf: audit package stack allocations and measure local initialization independently by @thomhurst in #1538
- fix: end unit retry waits on client disposal and add real Redis whole-unit retry coverage by @thomhurst in #1543
- test: audit whole-unit batch and transaction retry acceptance by @thomhurst in #1539
- test: fix Sentinel batch connection-loss flake by demoting the former primary's ROLE by @thomhurst in #1544
- test: synchronize stream failure fixture by @thomhurst in #1542
- docs: trace the 272-byte dispatched-wake delta to thread-pool worker starts by @thomhurst in #1545
- docs: record SkipLocalsInit JIT evidence; no attribute ships (#1065) by @thomhurst in #1548
- feat: make retried stream appends safe with automatic XADD IDMP identities by @thomhurst in #1546
- fix: run Redis throughput benchmark on net10 with workflow client counts by @thomhurst in #1549
- chore(deps): update dependency awssdk.core to 4.0.102.10 by @thomhurst in #1550
- docs: complete higher-level capability documentation by @thomhurst in #1551
- fix: use one Respire connection in Redis throughput benchmark by @thomhurst in #1552
- feat: compose endpoint circuit admission with retry policies by @thomhurst in #1547
- chore(deps): update dependency messagepack to 3.1.12 by @thomhurst in #1554
- fix: format RespValue numeric text with the invariant culture by @thomhurst in #1558
- perf: let hot facet commands reach native dispatch by @thomhurst in #1562
- perf: observe ready cluster replies with a pooled source instead of an async frame by @thomhurst in #1557
- perf: complete buffered byte[] bulk replies straight from the receive buffer by @thomhurst in #1555
- perf: reserve bulk header and payload once and format scalars in place by @thomhurst in #1560
- perf: parse RESP integer header lines in a single pass by @thomhurst in #1561
- perf: capture direct-route telemetry decisions once per operation by @thomhurst in #1556
Full Changelog: v0.7.19...v0.8.0
NuGet packages
dotnet add package Aspire.Respire --version 0.8.0
dotnet add package Aspire.Respire.DistributedCaching --version 0.8.0
dotnet add package Aspire.Respire.HybridCaching --version 0.8.0
dotnet add package Aspire.Respire.OutputCaching --version 0.8.0
dotnet add package Respire --version 0.8.0
dotnet add package Respire.AI --version 0.8.0
dotnet add package Respire.Aws --version 0.8.0
dotnet add package Respire.Azure --version 0.8.0
dotnet add package Respire.Caching --version 0.8.0
dotnet add package Respire.Caching.Hybrid --version 0.8.0
dotnet add package Respire.Compression.Lz4 --version 0.8.0
dotnet add package Respire.Compression.Zstd --version 0.8.0
dotnet add package Respire.Coordination --version 0.8.0
dotnet add package Respire.DataProtection --version 0.8.0
dotnet add package Respire.DependencyInjection --version 0.8.0
dotnet add package Respire.FusionCache --version 0.8.0
dotnet add package Respire.HealthChecks --version 0.8.0
dotnet add package Respire.Json --version 0.8.0
dotnet add package Respire.OutputCaching --version 0.8.0
dotnet add package Respire.Probabilistic --version 0.8.0
dotnet add package Respire.Search --version 0.8.0
dotnet add package Respire.SignalR --version 0.8.0
dotnet add package Respire.StackExchangeCompat --version 0.8.0
dotnet add package Respire.Streaming --version 0.8.0
dotnet add package Respire.Testing --version 0.8.0
dotnet add package Respire.Testing.Containers --version 0.8.0
dotnet add package Respire.TimeSeries --version 0.8.0
dotnet add package Respire.VectorData --version 0.8.0