feat(container)!: Update image ghcr.io/dragonflydb/dragonfly (v1.40.2 ➔ v2.0.0) #2121

Merged
GiorgioAresu merged 1 commit from renovate/ghcr.io-dragonflydb-dragonfly-2.x into main 2026-09-18 09:00:35 +02:00
Collaborator

This PR contains the following updates:

Package Update Change
ghcr.io/dragonflydb/dragonfly major v1.40.2 → v2.0.0

⚠️ Warning

Some dependencies could not be looked up. Check the Dependency Dashboard for more information.


Release Notes

dragonflydb/dragonfly (ghcr.io/dragonflydb/dragonfly)

v2.0.0

Compare Source

Dragonfly v2.0.0

We have been waiting three years to bump the major version.

While this specific release does not add new major features by itself, it marks a significant milestone in our maturity, performance, and production readiness.

Dragonfly v2.0.0 expands Redis and Valkey compatibility with Valkey 9 RDB loading, GEOSEARCHSTORE, and improved replication backlog controls. Performance work reduces connection-processing and memory-accounting overhead while adding tighter controls for defragmentation and buffer retention. Tiered storage, cluster migration, streams, compressed lists, and RESP3 behavior received substantial correctness improvements. This release also strengthens RESTORE validation against malformed or incompatible payloads.

Highlights

Commands

  • Added GEOSEARCHSTORE with radius or box queries, sorting, limits, distance scores, ACL enforcement, and journaling. (#​7984)
  • Added MEMORY DEFRAGMENT-SEGMENTS [threshold] to reclaim sparsely used DashTable pages and report page usage. (#​7995)

Performance

  • Refreshes Memcached parser memory usage once per batch and skips no-op pipeline squash refreshes. (#​8246)
  • Skips reply-batch setup when no pipeline replies are in flight. (#​8224)
  • Refreshes connection-memory telemetry once per parse cycle instead of after every pipelined command. (#​8225)
  • Restores fast allocation-tracker rejection outside configured ranges and after trackers are cleared. (#​8207)
  • Adds an opt-in shared RESP V2 read buffer per proactor, disabled by default. [Projected future reduction from about 800 MB to under 1 MB for 25K connections on 32 CPUs; not realized by this commit.] (#​8145)
  • Adds configurable burst and cooldown limits for background defragmentation. [Example configuration limits defragmentation to approximately 1% of one CPU core.] (#​8115)
  • Releases oversized RDB serializer buffers after flushing. [Retained capacity is capped at 4 MiB by default; previously a 512 MiB object could leave 512 MiB allocated.] (#​8140)
  • Shrinks client input buffers after low usage and adds configuration and metrics. [Reduces the default maximum by 50%, from 64 KiB to 32 KiB.] (#​8005)

Replication

  • Loads Valkey 9 RDB hashes containing persistent and expiring fields. (#​8251)
  • Retains replication backlog entries by age and memory budget, deprecating the fixed-length option. (#​8039)

Bug fixes

  • RESTORE rejects duplicate hash fields in HASH and HASH_LISTPACK payloads. (#​8260)
  • SLOWLOG GET now returns 10 entries by default while preserving explicit counts and -1. (#​8248)
  • Makes connection memory introspection constant time by caching mutable state usage. [Reduces connection memory accounting from O(n) to O(1).] (#​8245)
  • Detects RESP commands after empty inline lines, fixing redis-cli --pipe sentinel timeouts. (#​8244)
  • Retries cluster migration finalization when pausing clients times out. (#​8240)
  • Decodes RedisShake RDB type 20 as a set listpack regardless of the footer version. (#​8227)
  • Rejects RESTORE payloads whose declared lengths exceed the remaining input, preventing remote out-of-memory crashes. (#​8222)
  • Defers container deletion during paused yielding RM iterations to prevent use-after-free. (#​8210)
  • Prevents SORT LIMIT range overflow near 32-bit limits. (#​8212)
  • Returns the Redis-compatible <index>: no such index FT.INFO error. (#​8199)
  • Makes SORT ... STORE delete the destination and return 0 when the source is missing. (#​8190)
  • Releases unused cached ParsedCommand entries in the V2 pipeline. (#​8192)
  • Reports multi-key XREADGROUP errors in command argument order. (#​8186)
  • Preserves command-family and ACL metadata when command aliases are cloned. (#​8175)
  • Validates every XREADGROUP stream before mutating consumer-group state. (#​8158)
  • Uses a startup ACL snapshot throughout Lua script execution. (#​8116)
  • Bounds incremental expired-key scanning by physical bucket, time, and item quotas. (#​8129)
  • Recomputes invalid stream memory deltas instead of wrapping cached values. [Prevents reported size from inflating from a few GiB to terabytes.] (#​8066)
  • Makes used_memory_peak_rss report peak resident memory. (#​8143)
  • Excludes commands parsed before V2 traffic logging starts. (#​8139)
  • Records migration target OOM acknowledgements and removes transferred slots. (#​8127)
  • Fixes Apple Clang 16 ARM64 crashes during float32-to-bfloat16 conversion. (#​8123)
  • Logs V2 traffic before dispatch without suspension or duplicate retry records. (#​8096)
  • Delivers queued Pub/Sub messages before V2 UNSUBSCRIBE confirmations. (#​8075)
  • Uses header-aware accounting and a fixed cutoff for tiered small-bin reclamation. (#​8081)
  • Returns null arrays for empty ZMPOP, BZMPOP, LMPOP, and BLMPOP results. (#​8092)
  • Honors ZADD GT and ZADD LT for skiplist-encoded sorted sets. (#​8091)
  • Correctly encodes RESP3 null replies for blocking stream, list, and sorted-set commands. (#​8085)
  • Rejects FT.CREATE definitions without a SCHEMA containing at least one field. (#​8054)
  • Returns the required RESP3 map shape when a blocked XREAD wakes. (#​8064)
  • Preserves offloaded hashes, updates, and Memcached flags during serialization. (#​8026)
  • Switches TLS listener contexts atomically and corrects cross-thread tls_bytes accounting. (#​8043)
  • Completes tiered SET slot and database accounting before journaling and stashing adjustments. (#​8050)
  • Always exports expired_keys_total and evicted_keys_total, including zero values. (#​8052)
  • Attributes tiered list-node operations to the correct cluster slot. (#​8046)
  • Makes XGROUP MKSTREAM create a stream only when the key is absent. (#​8057)
  • Uploads offloaded values before RENAME or MOVE transfers tiered keys. (#​8004)
  • Journals FLUSHSLOTS inside its global transaction with distinct transaction IDs. (#​8032)
  • Wakes blocked XREADGROUP clients with WRONGTYPE when a stream becomes another data type. (#​8038)
  • Replicates stored cross-shard GEORADIUS results as explicit DEL and ZADD operations. (#​8030)
  • Frees unfinished chunked values on their owning shards after incomplete RDB loads. (#​8037)
  • Keeps search-indexed hashes resident and materializes existing offloaded hashes when needed. (#​8018)
  • Wakes blocked XREADGROUP clients with NOGROUP when their stream expires. (#​8031)
  • Prevents underfilled tiered bins from repeatedly entering defragmentation. (#​8024)
  • Prevents Lua async-call detection from exhausting fiber stacks or performing unsafe rewrites. (#​7974)
  • Removes QList compression savings when compressed interior nodes are erased. (#​8023)
  • Restores the final QList node’s compressed state after partial reads. (#​8010)
  • Wakes blocked XREADGROUP clients with NOGROUP or WRONGTYPE after stream deletion or recreation. (#​8015)
  • Preserves serial semantics for connection-state commands in squashed pipelines. (#​8016)
  • Corrects compressed-list memory tracking and unsigned underflow. [Corrects approximately 13x over-reporting on a Celery-like workload.] (#​8014)
  • Copies only compressed data into replacement buffers during quicklist defragmentation. [Regression allocation fell from 32,112 bytes to 8,496 bytes.] (#​8011)
  • Validates cuckoo filter capacity and expansion bounds while adding configurable defaults. (#​7965)

Huge thanks to all the contributors! ❤️

New Contributors

What's Changed

Full Changelog: https://github.com/dragonflydb/dragonfly/compare/v1.40.0...v2.0.0


Configuration

📅 Schedule: (in timezone Europe/Rome)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Mend Renovate CLI.

This PR contains the following updates: | Package | Update | Change | |---|---|---| | [ghcr.io/dragonflydb/dragonfly](https://github.com/dragonflydb/dragonfly) | major | `v1.40.2` → `v2.0.0` | --- > ⚠️ **Warning** > > Some dependencies could not be looked up. Check the [Dependency Dashboard](issues/6) for more information. --- ### Release Notes <details> <summary>dragonflydb/dragonfly (ghcr.io/dragonflydb/dragonfly)</summary> ### [`v2.0.0`](https://github.com/dragonflydb/dragonfly/releases/tag/v2.0.0) [Compare Source](https://github.com/dragonflydb/dragonfly/compare/v1.40.2...v2.0.0) ### Dragonfly v2.0.0 We have been waiting three years to bump the major version. While this specific release does not add new major features by itself, it marks a significant milestone in our maturity, performance, and production readiness. Dragonfly v2.0.0 expands Redis and Valkey compatibility with Valkey 9 RDB loading, GEOSEARCHSTORE, and improved replication backlog controls. Performance work reduces connection-processing and memory-accounting overhead while adding tighter controls for defragmentation and buffer retention. Tiered storage, cluster migration, streams, compressed lists, and RESP3 behavior received substantial correctness improvements. This release also strengthens RESTORE validation against malformed or incompatible payloads. #### Highlights - Added Valkey 9 RDB support and GEOSEARCHSTORE. ([#&#8203;8251](https://github.com/dragonflydb/dragonfly/issues/8251), [#&#8203;7984](https://github.com/dragonflydb/dragonfly/issues/7984)) - Reduced connection-accounting, parsing, buffering, and RDB serialization costs. ([#&#8203;8246](https://github.com/dragonflydb/dragonfly/issues/8246), [#&#8203;8225](https://github.com/dragonflydb/dragonfly/issues/8225), [#&#8203;8140](https://github.com/dragonflydb/dragonfly/issues/8140), [#&#8203;8005](https://github.com/dragonflydb/dragonfly/issues/8005)) - Hardened RESTORE, cluster migration, tiered storage, streams, RESP3, and compressed-list handling. ([#&#8203;8260](https://github.com/dragonflydb/dragonfly/issues/8260), [#&#8203;8240](https://github.com/dragonflydb/dragonfly/issues/8240), [#&#8203;8026](https://github.com/dragonflydb/dragonfly/issues/8026), [#&#8203;8015](https://github.com/dragonflydb/dragonfly/issues/8015), [#&#8203;8085](https://github.com/dragonflydb/dragonfly/issues/8085), [#&#8203;8014](https://github.com/dragonflydb/dragonfly/issues/8014)) #### Commands - Added GEOSEARCHSTORE with radius or box queries, sorting, limits, distance scores, ACL enforcement, and journaling. ([#&#8203;7984](https://github.com/dragonflydb/dragonfly/issues/7984)) - Added `MEMORY DEFRAGMENT-SEGMENTS [threshold]` to reclaim sparsely used DashTable pages and report page usage. ([#&#8203;7995](https://github.com/dragonflydb/dragonfly/issues/7995)) #### Performance - Refreshes Memcached parser memory usage once per batch and skips no-op pipeline squash refreshes. ([#&#8203;8246](https://github.com/dragonflydb/dragonfly/issues/8246)) - Skips reply-batch setup when no pipeline replies are in flight. ([#&#8203;8224](https://github.com/dragonflydb/dragonfly/issues/8224)) - Refreshes connection-memory telemetry once per parse cycle instead of after every pipelined command. ([#&#8203;8225](https://github.com/dragonflydb/dragonfly/issues/8225)) - Restores fast allocation-tracker rejection outside configured ranges and after trackers are cleared. ([#&#8203;8207](https://github.com/dragonflydb/dragonfly/issues/8207)) - Adds an opt-in shared RESP V2 read buffer per proactor, disabled by default. \[Projected future reduction from about 800 MB to under 1 MB for 25K connections on 32 CPUs; not realized by this commit.] ([#&#8203;8145](https://github.com/dragonflydb/dragonfly/issues/8145)) - Adds configurable burst and cooldown limits for background defragmentation. \[Example configuration limits defragmentation to approximately 1% of one CPU core.] ([#&#8203;8115](https://github.com/dragonflydb/dragonfly/issues/8115)) - Releases oversized RDB serializer buffers after flushing. \[Retained capacity is capped at 4 MiB by default; previously a 512 MiB object could leave 512 MiB allocated.] ([#&#8203;8140](https://github.com/dragonflydb/dragonfly/issues/8140)) - Shrinks client input buffers after low usage and adds configuration and metrics. \[Reduces the default maximum by 50%, from 64 KiB to 32 KiB.] ([#&#8203;8005](https://github.com/dragonflydb/dragonfly/issues/8005)) #### Replication - Loads Valkey 9 RDB hashes containing persistent and expiring fields. ([#&#8203;8251](https://github.com/dragonflydb/dragonfly/issues/8251)) - Retains replication backlog entries by age and memory budget, deprecating the fixed-length option. ([#&#8203;8039](https://github.com/dragonflydb/dragonfly/issues/8039)) #### Bug fixes - RESTORE rejects duplicate hash fields in HASH and HASH\_LISTPACK payloads. ([#&#8203;8260](https://github.com/dragonflydb/dragonfly/issues/8260)) - `SLOWLOG GET` now returns 10 entries by default while preserving explicit counts and `-1`. ([#&#8203;8248](https://github.com/dragonflydb/dragonfly/issues/8248)) - Makes connection memory introspection constant time by caching mutable state usage. \[Reduces connection memory accounting from O(n) to O(1).] ([#&#8203;8245](https://github.com/dragonflydb/dragonfly/issues/8245)) - Detects RESP commands after empty inline lines, fixing `redis-cli --pipe` sentinel timeouts. ([#&#8203;8244](https://github.com/dragonflydb/dragonfly/issues/8244)) - Retries cluster migration finalization when pausing clients times out. ([#&#8203;8240](https://github.com/dragonflydb/dragonfly/issues/8240)) - Decodes RedisShake RDB type 20 as a set listpack regardless of the footer version. ([#&#8203;8227](https://github.com/dragonflydb/dragonfly/issues/8227)) - Rejects RESTORE payloads whose declared lengths exceed the remaining input, preventing remote out-of-memory crashes. ([#&#8203;8222](https://github.com/dragonflydb/dragonfly/issues/8222)) - Defers container deletion during paused yielding RM iterations to prevent use-after-free. ([#&#8203;8210](https://github.com/dragonflydb/dragonfly/issues/8210)) - Prevents `SORT LIMIT` range overflow near 32-bit limits. ([#&#8203;8212](https://github.com/dragonflydb/dragonfly/issues/8212)) - Returns the Redis-compatible `<index>: no such index` FT.INFO error. ([#&#8203;8199](https://github.com/dragonflydb/dragonfly/issues/8199)) - Makes `SORT ... STORE` delete the destination and return `0` when the source is missing. ([#&#8203;8190](https://github.com/dragonflydb/dragonfly/issues/8190)) - Releases unused cached ParsedCommand entries in the V2 pipeline. ([#&#8203;8192](https://github.com/dragonflydb/dragonfly/issues/8192)) - Reports multi-key XREADGROUP errors in command argument order. ([#&#8203;8186](https://github.com/dragonflydb/dragonfly/issues/8186)) - Preserves command-family and ACL metadata when command aliases are cloned. ([#&#8203;8175](https://github.com/dragonflydb/dragonfly/issues/8175)) - Validates every XREADGROUP stream before mutating consumer-group state. ([#&#8203;8158](https://github.com/dragonflydb/dragonfly/issues/8158)) - Uses a startup ACL snapshot throughout Lua script execution. ([#&#8203;8116](https://github.com/dragonflydb/dragonfly/issues/8116)) - Bounds incremental expired-key scanning by physical bucket, time, and item quotas. ([#&#8203;8129](https://github.com/dragonflydb/dragonfly/issues/8129)) - Recomputes invalid stream memory deltas instead of wrapping cached values. \[Prevents reported size from inflating from a few GiB to terabytes.] ([#&#8203;8066](https://github.com/dragonflydb/dragonfly/issues/8066)) - Makes `used_memory_peak_rss` report peak resident memory. ([#&#8203;8143](https://github.com/dragonflydb/dragonfly/issues/8143)) - Excludes commands parsed before V2 traffic logging starts. ([#&#8203;8139](https://github.com/dragonflydb/dragonfly/issues/8139)) - Records migration target OOM acknowledgements and removes transferred slots. ([#&#8203;8127](https://github.com/dragonflydb/dragonfly/issues/8127)) - Fixes Apple Clang 16 ARM64 crashes during float32-to-bfloat16 conversion. ([#&#8203;8123](https://github.com/dragonflydb/dragonfly/issues/8123)) - Logs V2 traffic before dispatch without suspension or duplicate retry records. ([#&#8203;8096](https://github.com/dragonflydb/dragonfly/issues/8096)) - Delivers queued Pub/Sub messages before V2 UNSUBSCRIBE confirmations. ([#&#8203;8075](https://github.com/dragonflydb/dragonfly/issues/8075)) - Uses header-aware accounting and a fixed cutoff for tiered small-bin reclamation. ([#&#8203;8081](https://github.com/dragonflydb/dragonfly/issues/8081)) - Returns null arrays for empty ZMPOP, BZMPOP, LMPOP, and BLMPOP results. ([#&#8203;8092](https://github.com/dragonflydb/dragonfly/issues/8092)) - Honors `ZADD GT` and `ZADD LT` for skiplist-encoded sorted sets. ([#&#8203;8091](https://github.com/dragonflydb/dragonfly/issues/8091)) - Correctly encodes RESP3 null replies for blocking stream, list, and sorted-set commands. ([#&#8203;8085](https://github.com/dragonflydb/dragonfly/issues/8085)) - Rejects FT.CREATE definitions without a SCHEMA containing at least one field. ([#&#8203;8054](https://github.com/dragonflydb/dragonfly/issues/8054)) - Returns the required RESP3 map shape when a blocked XREAD wakes. ([#&#8203;8064](https://github.com/dragonflydb/dragonfly/issues/8064)) - Preserves offloaded hashes, updates, and Memcached flags during serialization. ([#&#8203;8026](https://github.com/dragonflydb/dragonfly/issues/8026)) - Switches TLS listener contexts atomically and corrects cross-thread `tls_bytes` accounting. ([#&#8203;8043](https://github.com/dragonflydb/dragonfly/issues/8043)) - Completes tiered SET slot and database accounting before journaling and stashing adjustments. ([#&#8203;8050](https://github.com/dragonflydb/dragonfly/issues/8050)) - Always exports `expired_keys_total` and `evicted_keys_total`, including zero values. ([#&#8203;8052](https://github.com/dragonflydb/dragonfly/issues/8052)) - Attributes tiered list-node operations to the correct cluster slot. ([#&#8203;8046](https://github.com/dragonflydb/dragonfly/issues/8046)) - Makes XGROUP MKSTREAM create a stream only when the key is absent. ([#&#8203;8057](https://github.com/dragonflydb/dragonfly/issues/8057)) - Uploads offloaded values before RENAME or MOVE transfers tiered keys. ([#&#8203;8004](https://github.com/dragonflydb/dragonfly/issues/8004)) - Journals FLUSHSLOTS inside its global transaction with distinct transaction IDs. ([#&#8203;8032](https://github.com/dragonflydb/dragonfly/issues/8032)) - Wakes blocked XREADGROUP clients with WRONGTYPE when a stream becomes another data type. ([#&#8203;8038](https://github.com/dragonflydb/dragonfly/issues/8038)) - Replicates stored cross-shard GEORADIUS results as explicit DEL and ZADD operations. ([#&#8203;8030](https://github.com/dragonflydb/dragonfly/issues/8030)) - Frees unfinished chunked values on their owning shards after incomplete RDB loads. ([#&#8203;8037](https://github.com/dragonflydb/dragonfly/issues/8037)) - Keeps search-indexed hashes resident and materializes existing offloaded hashes when needed. ([#&#8203;8018](https://github.com/dragonflydb/dragonfly/issues/8018)) - Wakes blocked XREADGROUP clients with NOGROUP when their stream expires. ([#&#8203;8031](https://github.com/dragonflydb/dragonfly/issues/8031)) - Prevents underfilled tiered bins from repeatedly entering defragmentation. ([#&#8203;8024](https://github.com/dragonflydb/dragonfly/issues/8024)) - Prevents Lua async-call detection from exhausting fiber stacks or performing unsafe rewrites. ([#&#8203;7974](https://github.com/dragonflydb/dragonfly/issues/7974)) - Removes QList compression savings when compressed interior nodes are erased. ([#&#8203;8023](https://github.com/dragonflydb/dragonfly/issues/8023)) - Restores the final QList node’s compressed state after partial reads. ([#&#8203;8010](https://github.com/dragonflydb/dragonfly/issues/8010)) - Wakes blocked XREADGROUP clients with NOGROUP or WRONGTYPE after stream deletion or recreation. ([#&#8203;8015](https://github.com/dragonflydb/dragonfly/issues/8015)) - Preserves serial semantics for connection-state commands in squashed pipelines. ([#&#8203;8016](https://github.com/dragonflydb/dragonfly/issues/8016)) - Corrects compressed-list memory tracking and unsigned underflow. \[Corrects approximately 13x over-reporting on a Celery-like workload.] ([#&#8203;8014](https://github.com/dragonflydb/dragonfly/issues/8014)) - Copies only compressed data into replacement buffers during quicklist defragmentation. \[Regression allocation fell from 32,112 bytes to 8,496 bytes.] ([#&#8203;8011](https://github.com/dragonflydb/dragonfly/issues/8011)) - Validates cuckoo filter capacity and expansion bounds while adding configurable defaults. ([#&#8203;7965](https://github.com/dragonflydb/dragonfly/issues/7965)) #### Huge thanks to all the contributors! ❤️ #### New Contributors - [@&#8203;HighlightCode](https://github.com/HighlightCode) made their first contribution in [#&#8203;8017](https://github.com/dragonflydb/dragonfly/pull/8017) - [@&#8203;Shikha-code36](https://github.com/Shikha-code36) made their first contribution in [#&#8203;7974](https://github.com/dragonflydb/dragonfly/pull/7974) - [@&#8203;avy252004](https://github.com/avy252004) made their first contribution in [#&#8203;8037](https://github.com/dragonflydb/dragonfly/pull/8037) - [@&#8203;PixiBixi](https://github.com/PixiBixi) made their first contribution in [#&#8203;8052](https://github.com/dragonflydb/dragonfly/pull/8052) - [@&#8203;marttp](https://github.com/marttp) made their first contribution in [#&#8203;8138](https://github.com/dragonflydb/dragonfly/pull/8138) - [@&#8203;tjovicic](https://github.com/tjovicic) made their first contribution in [#&#8203;8171](https://github.com/dragonflydb/dragonfly/pull/8171) - [@&#8203;denis-samatov](https://github.com/denis-samatov) made their first contribution in [#&#8203;8199](https://github.com/dragonflydb/dragonfly/pull/8199) - [@&#8203;samber](https://github.com/samber) made their first contribution in [#&#8203;8283](https://github.com/dragonflydb/dragonfly/pull/8283) - [@&#8203;jmealo](https://github.com/jmealo) made their first contribution in [#&#8203;8289](https://github.com/dragonflydb/dragonfly/pull/8289) #### What's Changed - feat(server): add per-slot tiered\_bytes to DFLYCLUSTER GETSLOTINFO by [@&#8203;vyavdoshenko](https://github.com/vyavdoshenko) in [#&#8203;7983](https://github.com/dragonflydb/dragonfly/pull/7983) - chore(helm-chart): update to v1.40.0 by [@&#8203;github-actions](https://github.com/github-actions)\[bot] in [#&#8203;7991](https://github.com/dragonflydb/dragonfly/pull/7991) - feat: reduce min\_capacity for OAHTable by [@&#8203;BorysTheDev](https://github.com/BorysTheDev) in [#&#8203;8003](https://github.com/dragonflydb/dragonfly/pull/8003) - chore: cuckoo compatibility fixes and missing flags by [@&#8203;kostasrim](https://github.com/kostasrim) in [#&#8203;7965](https://github.com/dragonflydb/dragonfly/pull/7965) - CI: do not print successful gtest output by [@&#8203;abhijat](https://github.com/abhijat) in [#&#8203;8000](https://github.com/dragonflydb/dragonfly/pull/8000) - fix(qlist): copy only the compressed blob when defragmenting a compressed node by [@&#8203;romange](https://github.com/romange) in [#&#8203;8011](https://github.com/dragonflydb/dragonfly/pull/8011) - fix(qlist): fix malloc\_size\_ accounting for compressed nodes by [@&#8203;romange](https://github.com/romange) in [#&#8203;8014](https://github.com/dragonflydb/dragonfly/pull/8014) - fix: preserve connection state across squashed pipelines (Fixes [#&#8203;8006](https://github.com/dragonflydb/dragonfly/issues/8006)) by [@&#8203;glevkovich](https://github.com/glevkovich) in [#&#8203;8016](https://github.com/dragonflydb/dragonfly/pull/8016) - fix: wake blocked XREADGROUP when its stream is deleted by [@&#8203;BorysTheDev](https://github.com/BorysTheDev) in [#&#8203;8015](https://github.com/dragonflydb/dragonfly/pull/8015) - feat: use OAHSet by default by [@&#8203;BorysTheDev](https://github.com/BorysTheDev) in [#&#8203;8013](https://github.com/dragonflydb/dragonfly/pull/8013) - fix(core): make QList read paths footprint-neutral by [@&#8203;romange](https://github.com/romange) in [#&#8203;8010](https://github.com/dragonflydb/dragonfly/pull/8010) - CI: wait for release sync before running package-install tests by [@&#8203;abhijat](https://github.com/abhijat) in [#&#8203;7999](https://github.com/dragonflydb/dragonfly/pull/7999) - CI: install python3 in container before running script by [@&#8203;abhijat](https://github.com/abhijat) in [#&#8203;8021](https://github.com/dragonflydb/dragonfly/pull/8021) - chore(helm-chart): update to v1.40.1 by [@&#8203;github-actions](https://github.com/github-actions)\[bot] in [#&#8203;8020](https://github.com/dragonflydb/dragonfly/pull/8020) - fix: wake blocked XREADGROUP on FLUSHDB by [@&#8203;BorysTheDev](https://github.com/BorysTheDev) in [#&#8203;8019](https://github.com/dragonflydb/dragonfly/pull/8019) - fix(qlist): release compression stats when DelNode drops a compressed node by [@&#8203;romange](https://github.com/romange) in [#&#8203;8023](https://github.com/dragonflydb/dragonfly/pull/8023) - docs(ko-KR): fix typos in Korean README by [@&#8203;HighlightCode](https://github.com/HighlightCode) in [#&#8203;8017](https://github.com/dragonflydb/dragonfly/pull/8017) - fix(CI): Avoid re-signing existing released RPMs by [@&#8203;abhijat](https://github.com/abhijat) in [#&#8203;8022](https://github.com/dragonflydb/dragonfly/pull/8022) - feat(facade): reclaim (shrink) connection buffers by [@&#8203;glevkovich](https://github.com/glevkovich) in [#&#8203;8005](https://github.com/dragonflydb/dragonfly/pull/8005) - fix(test\_client\_kill): wait for client kill cleanup by [@&#8203;glevkovich](https://github.com/glevkovich) in [#&#8203;8025](https://github.com/dragonflydb/dragonfly/pull/8025) - fix(scripting): avoid std::regex recursion SIGABRT in DetectPossibleAsyncCalls by [@&#8203;Shikha-code36](https://github.com/Shikha-code36) in [#&#8203;7974](https://github.com/dragonflydb/dragonfly/pull/7974) - feat(core): Table segment defragmentation by [@&#8203;abhijat](https://github.com/abhijat) in [#&#8203;7979](https://github.com/dragonflydb/dragonfly/pull/7979) - fix(tiering): small-bins defrag livelock on underfilled bins by [@&#8203;kostasrim](https://github.com/kostasrim) in [#&#8203;8024](https://github.com/dragonflydb/dragonfly/pull/8024) - fix: wake blocked XREADGROUP when its stream expires by [@&#8203;BorysTheDev](https://github.com/BorysTheDev) in [#&#8203;8031](https://github.com/dragonflydb/dragonfly/pull/8031) - fix(test): cover V2 idle IoBuf reclamation by [@&#8203;glevkovich](https://github.com/glevkovich) in [#&#8203;8036](https://github.com/dragonflydb/dragonfly/pull/8036) - fix: unblock stream if flush slots by [@&#8203;BorysTheDev](https://github.com/BorysTheDev) in [#&#8203;8035](https://github.com/dragonflydb/dragonfly/pull/8035) - fix(search): keep indexed hashes resident under experimental hash offloading by [@&#8203;vyavdoshenko](https://github.com/vyavdoshenko) in [#&#8203;8018](https://github.com/dragonflydb/dragonfly/pull/8018) - Fix/rdb finishload cross shard free by [@&#8203;avy252004](https://github.com/avy252004) in [#&#8203;8037](https://github.com/dragonflydb/dragonfly/pull/8037) - fix(geo): avoid replica crash on cross-shard GEORADIUS/GEORADIUSBYMEM… by [@&#8203;Shikha-code36](https://github.com/Shikha-code36) in [#&#8203;8030](https://github.com/dragonflydb/dragonfly/pull/8030) - chore: increase load for test\_replicaof\_reject\_on\_load by [@&#8203;kostasrim](https://github.com/kostasrim) in [#&#8203;8044](https://github.com/dragonflydb/dragonfly/pull/8044) - fix: GAT 0 journals PERSIST instead of PEXPIREAT 0 by [@&#8203;vyavdoshenko](https://github.com/vyavdoshenko) in [#&#8203;8041](https://github.com/dragonflydb/dragonfly/pull/8041) - fix: the blocked XREADGROUP returns WRONGTYPE for overwrite commands by [@&#8203;BorysTheDev](https://github.com/BorysTheDev) in [#&#8203;8038](https://github.com/dragonflydb/dragonfly/pull/8038) - fix(cluster): journal FLUSHSLOTS from inside the flush transaction by [@&#8203;vyavdoshenko](https://github.com/vyavdoshenko) in [#&#8203;8032](https://github.com/dragonflydb/dragonfly/pull/8032) - feat(server): Add defrag table segments command by [@&#8203;abhijat](https://github.com/abhijat) in [#&#8203;7995](https://github.com/dragonflydb/dragonfly/pull/7995) - fix(config): make notify\_keyspace\_events configuration correct by [@&#8203;vyavdoshenko](https://github.com/vyavdoshenko) in [#&#8203;8042](https://github.com/dragonflydb/dragonfly/pull/8042) - chore: Make ListNodeTieringTest backing file path pid-unique by [@&#8203;mkaruza](https://github.com/mkaruza) in [#&#8203;8040](https://github.com/dragonflydb/dragonfly/pull/8040) - build(deps): update packaging requirement from >=26.2 to >=26.3 in /tests/dragonfly by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;8045](https://github.com/dragonflydb/dragonfly/pull/8045) - perf(build): use minimal debug info in CI by [@&#8203;glevkovich](https://github.com/glevkovich) in [#&#8203;8049](https://github.com/dragonflydb/dragonfly/pull/8049) - build(deps): bump the actions group across 1 directory with 5 updates by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;7910](https://github.com/dragonflydb/dragonfly/pull/7910) - fix(tiering): Generic upload routine by [@&#8203;dranikpg](https://github.com/dranikpg) in [#&#8203;8004](https://github.com/dragonflydb/dragonfly/pull/8004) - fix: add validation hop for multi-stream blocking XREADGROUP by [@&#8203;BorysTheDev](https://github.com/BorysTheDev) in [#&#8203;8047](https://github.com/dragonflydb/dragonfly/pull/8047) - fix(test): Stabilize flaky SerializerBaseTest.DelayedEvicted by [@&#8203;mkaruza](https://github.com/mkaruza) in [#&#8203;8048](https://github.com/dragonflydb/dragonfly/pull/8048) - fix(stream): Only create stream group when key is missing and MKSTREAM is set by [@&#8203;mkaruza](https://github.com/mkaruza) in [#&#8203;8057](https://github.com/dragonflydb/dragonfly/pull/8057) - fix(tiering): Attribute list-node offload/load bytes to the right slot by [@&#8203;mkaruza](https://github.com/mkaruza) in [#&#8203;8046](https://github.com/dragonflydb/dragonfly/pull/8046) - refactor: improve stream tests by [@&#8203;BorysTheDev](https://github.com/BorysTheDev) in [#&#8203;8059](https://github.com/dragonflydb/dragonfly/pull/8059) - fix(metrics): always emit expired\_keys\_total and evicted\_keys\_total, including zero by [@&#8203;PixiBixi](https://github.com/PixiBixi) in [#&#8203;8052](https://github.com/dragonflydb/dragonfly/pull/8052) - fix(server): Fix memory accounting order on SET+tiered storage by [@&#8203;abhijat](https://github.com/abhijat) in [#&#8203;8050](https://github.com/dragonflydb/dragonfly/pull/8050) - tests: Fix some errors seen on valkey search path by [@&#8203;abhijat](https://github.com/abhijat) in [#&#8203;8060](https://github.com/dragonflydb/dragonfly/pull/8060) - fix(tls): atomic context switch and correct tls\_bytes accounting by [@&#8203;vyavdoshenko](https://github.com/vyavdoshenko) in [#&#8203;8043](https://github.com/dragonflydb/dragonfly/pull/8043) - fix(tiering): preserve offloaded hashes during serialization by [@&#8203;vyavdoshenko](https://github.com/vyavdoshenko) in [#&#8203;8026](https://github.com/dragonflydb/dragonfly/pull/8026) - fix(stream): Reply with RESP3 map for XREAD BLOCK by [@&#8203;mkaruza](https://github.com/mkaruza) in [#&#8203;8064](https://github.com/dragonflydb/dragonfly/pull/8064) - chore(server): Prefetch + cid caching for speedup by [@&#8203;dranikpg](https://github.com/dranikpg) in [#&#8203;8033](https://github.com/dragonflydb/dragonfly/pull/8033) - fix(search): reject FT.CREATE missing the SCHEMA keyword by [@&#8203;Shikha-code36](https://github.com/Shikha-code36) in [#&#8203;8054](https://github.com/dragonflydb/dragonfly/pull/8054) - chore: remove dead test\_replication\_onmove\_flow by [@&#8203;kostasrim](https://github.com/kostasrim) in [#&#8203;8078](https://github.com/dragonflydb/dragonfly/pull/8078) - fix(server): emit expired keyspace events for already-past expirations by [@&#8203;vyavdoshenko](https://github.com/vyavdoshenko) in [#&#8203;8065](https://github.com/dragonflydb/dragonfly/pull/8065) - fix: SET with a past expiration honors NX/XX/GET and journals the delete by [@&#8203;vyavdoshenko](https://github.com/vyavdoshenko) in [#&#8203;8082](https://github.com/dragonflydb/dragonfly/pull/8082) - fix: test\_cron\_snapshot\_failed\_saving by [@&#8203;BorysTheDev](https://github.com/BorysTheDev) in [#&#8203;8083](https://github.com/dragonflydb/dragonfly/pull/8083) - fix(tests): Sample lag continuously in test\_replication\_info by [@&#8203;mkaruza](https://github.com/mkaruza) in [#&#8203;8084](https://github.com/dragonflydb/dragonfly/pull/8084) - fix(tests): extend pause wait (Fixes [#&#8203;8079](https://github.com/dragonflydb/dragonfly/issues/8079)) by [@&#8203;glevkovich](https://github.com/glevkovich) in [#&#8203;8093](https://github.com/dragonflydb/dragonfly/pull/8093) - fix(facade): Handle RESP3 null array response by [@&#8203;mkaruza](https://github.com/mkaruza) in [#&#8203;8085](https://github.com/dragonflydb/dragonfly/pull/8085) - fix(tests): fix test\_pubsub\_pipeline\_starvation test by [@&#8203;glevkovich](https://github.com/glevkovich) in [#&#8203;8094](https://github.com/dragonflydb/dragonfly/pull/8094) - fix(zset): honor GT/LT flags for skiplist-encoded sorted sets by [@&#8203;Shikha-code36](https://github.com/Shikha-code36) in [#&#8203;8091](https://github.com/dragonflydb/dragonfly/pull/8091) - fix: reply with a null array for empty ZMPOP/BZMPOP/LMPOP/BLMPOP by [@&#8203;vyavdoshenko](https://github.com/vyavdoshenko) in [#&#8203;8092](https://github.com/dragonflydb/dragonfly/pull/8092) - fix(ci): run cache reaper hourly by [@&#8203;glevkovich](https://github.com/glevkovich) in [#&#8203;8097](https://github.com/dragonflydb/dragonfly/pull/8097) - test: un-skip graceful shutdown test by asserting the guaranteed durability contract by [@&#8203;vyavdoshenko](https://github.com/vyavdoshenko) in [#&#8203;8086](https://github.com/dragonflydb/dragonfly/pull/8086) - fix: null reply shapes for blocking moves, LPOP COUNT, ZRANK WITHSCORE, EXEC and friends by [@&#8203;vyavdoshenko](https://github.com/vyavdoshenko) in [#&#8203;8098](https://github.com/dragonflydb/dragonfly/pull/8098) - fix(chart): update vulnerable Go modules by [@&#8203;glevkovich](https://github.com/glevkovich) in [#&#8203;8100](https://github.com/dragonflydb/dragonfly/pull/8100) - fix(ci): check out default branch for cache-reaper by [@&#8203;glevkovich](https://github.com/glevkovich) in [#&#8203;8101](https://github.com/dragonflydb/dragonfly/pull/8101) - fix(tiering): tight small bin fragmentation cutoff by [@&#8203;kostasrim](https://github.com/kostasrim) in [#&#8203;8081](https://github.com/dragonflydb/dragonfly/pull/8081) - fix(server): lower table growth margin default by [@&#8203;romange](https://github.com/romange) in [#&#8203;8080](https://github.com/dragonflydb/dragonfly/pull/8080) - feat: add time limitation for replication backlog by [@&#8203;BorysTheDev](https://github.com/BorysTheDev) in [#&#8203;8039](https://github.com/dragonflydb/dragonfly/pull/8039) - fix(pubsub): preserve V2 message ordering by [@&#8203;glevkovich](https://github.com/glevkovich) in [#&#8203;8075](https://github.com/dragonflydb/dragonfly/pull/8075) - fix: reply NOSCRIPT for a sha that only has SCRIPT FLAGS set by [@&#8203;vyavdoshenko](https://github.com/vyavdoshenko) in [#&#8203;8108](https://github.com/dragonflydb/dragonfly/pull/8108) - server: Add warning to defragment commands about time based CPU use by [@&#8203;abhijat](https://github.com/abhijat) in [#&#8203;8107](https://github.com/dragonflydb/dragonfly/pull/8107) - fix(bloom): reject SBF filters the rdb loader would refuse to load back by [@&#8203;vyavdoshenko](https://github.com/vyavdoshenko) in [#&#8203;8113](https://github.com/dragonflydb/dragonfly/pull/8113) - fix: release the global shard lock in the mode it was taken by [@&#8203;vyavdoshenko](https://github.com/vyavdoshenko) in [#&#8203;8111](https://github.com/dragonflydb/dragonfly/pull/8111) - fix: handle bad\_alloc in squashed MULTI callback and surface hop status by [@&#8203;vyavdoshenko](https://github.com/vyavdoshenko) in [#&#8203;8114](https://github.com/dragonflydb/dragonfly/pull/8114) - fix(facade): log V2 traffic before dispatch by [@&#8203;glevkovich](https://github.com/glevkovich) in [#&#8203;8096](https://github.com/dragonflydb/dragonfly/pull/8096) - fix: test\_slot\_migration\_oom\_replica\_rollback by [@&#8203;kostasrim](https://github.com/kostasrim) in [#&#8203;8117](https://github.com/dragonflydb/dragonfly/pull/8117) - test(facade): exclude debug traffic tests on epoll by [@&#8203;glevkovich](https://github.com/glevkovich) in [#&#8203;8124](https://github.com/dragonflydb/dragonfly/pull/8124) - chore: split python cluster tests by [@&#8203;kostasrim](https://github.com/kostasrim) in [#&#8203;8118](https://github.com/dragonflydb/dragonfly/pull/8118) - fix: apple clang16 crash on FloatToBf16 by [@&#8203;kostasrim](https://github.com/kostasrim) in [#&#8203;8123](https://github.com/dragonflydb/dragonfly/pull/8123) - fix(cluster): delete slots when OOM is discovered via ACK by [@&#8203;kostasrim](https://github.com/kostasrim) in [#&#8203;8127](https://github.com/dragonflydb/dragonfly/pull/8127) - chore: disable test\_debug\_traffic\_v2\_parse\_in\_proactor\_does\_not\_preempt by [@&#8203;kostasrim](https://github.com/kostasrim) in [#&#8203;8133](https://github.com/dragonflydb/dragonfly/pull/8133) - fix(tests): use FLUSHALL SYNC in test\_rss\_oom\_ratio to stop RSS-drop … by [@&#8203;Shikha-code36](https://github.com/Shikha-code36) in [#&#8203;8135](https://github.com/dragonflydb/dragonfly/pull/8135) - fix: validate COUNT in ZMPOP/BZMPOP/LMPOP/BLMPOP and fix large-count overflow by [@&#8203;vyavdoshenko](https://github.com/vyavdoshenko) in [#&#8203;8130](https://github.com/dragonflydb/dragonfly/pull/8130) - refactor: improve OAHTable::GetRandomMember by [@&#8203;BorysTheDev](https://github.com/BorysTheDev) in [#&#8203;8134](https://github.com/dragonflydb/dragonfly/pull/8134) - fix(traffic): preserve V2 parse-time logging (fixes [#&#8203;8120](https://github.com/dragonflydb/dragonfly/issues/8120)) by [@&#8203;glevkovich](https://github.com/glevkovich) in [#&#8203;8139](https://github.com/dragonflydb/dragonfly/pull/8139) - server: Fix rss peak metric by [@&#8203;abhijat](https://github.com/abhijat) in [#&#8203;8143](https://github.com/dragonflydb/dragonfly/pull/8143) - server: Fix stream size memory accounting by [@&#8203;abhijat](https://github.com/abhijat) in [#&#8203;8066](https://github.com/dragonflydb/dragonfly/pull/8066) - fix: re-enable test\_big\_huge\_streaming\_restart by [@&#8203;kostasrim](https://github.com/kostasrim) in [#&#8203;8141](https://github.com/dragonflydb/dragonfly/pull/8141) - chore(server): Release serializer buffer capacity over limit by [@&#8203;abhijat](https://github.com/abhijat) in [#&#8203;8140](https://github.com/dragonflydb/dragonfly/pull/8140) - feat(server): throttle defrag task CPU duty cycle by [@&#8203;kostasrim](https://github.com/kostasrim) in [#&#8203;8115](https://github.com/dragonflydb/dragonfly/pull/8115) - fix: don't abort on in-flight OnChange serialization when unregistering snapshot listener by [@&#8203;vyavdoshenko](https://github.com/vyavdoshenko) in [#&#8203;8146](https://github.com/dragonflydb/dragonfly/pull/8146) - docs(readme): add Thai translation by [@&#8203;marttp](https://github.com/marttp) in [#&#8203;8138](https://github.com/dragonflydb/dragonfly/pull/8138) - fix(server): Bound DeleteExpiredStep traversal with TraverseBySegment… by [@&#8203;dranikpg](https://github.com/dranikpg) in [#&#8203;8129](https://github.com/dragonflydb/dragonfly/pull/8129) - fix: release delayed-entry bucket latches on tiered read error and snapshot cancellation by [@&#8203;vyavdoshenko](https://github.com/vyavdoshenko) in [#&#8203;8150](https://github.com/dragonflydb/dragonfly/pull/8150) - docs: add container pull count badges to the READMEs by [@&#8203;romange](https://github.com/romange) in [#&#8203;8154](https://github.com/dragonflydb/dragonfly/pull/8154) - fix(acl): script context acl and enable flaky tests by [@&#8203;kostasrim](https://github.com/kostasrim) in [#&#8203;8116](https://github.com/dragonflydb/dragonfly/pull/8116) - feat(facade): share the RESP V2 read buffer by [@&#8203;glevkovich](https://github.com/glevkovich) in [#&#8203;8145](https://github.com/dragonflydb/dragonfly/pull/8145) - test(fuzz): repair seed corpus so every seed executes and harden coverage guard by [@&#8203;vyavdoshenko](https://github.com/vyavdoshenko) in [#&#8203;8099](https://github.com/dragonflydb/dragonfly/pull/8099) - tests: Change assertion to eventual instead of count-based by [@&#8203;abhijat](https://github.com/abhijat) in [#&#8203;8156](https://github.com/dragonflydb/dragonfly/pull/8156) - fix(tiering): Use TraverseBySegmentOrder and export more metrics/configs by [@&#8203;dranikpg](https://github.com/dranikpg) in [#&#8203;8077](https://github.com/dragonflydb/dragonfly/pull/8077) - tests: enable fixed Valkey stream TCL tests and add the pubsub suite by [@&#8203;vyavdoshenko](https://github.com/vyavdoshenko) in [#&#8203;8159](https://github.com/dragonflydb/dragonfly/pull/8159) - fix: test\_big\_huge\_streaming\_restart by [@&#8203;kostasrim](https://github.com/kostasrim) in [#&#8203;8160](https://github.com/dragonflydb/dragonfly/pull/8160) - fix: OAH benchmark allocator init by [@&#8203;BorysTheDev](https://github.com/BorysTheDev) in [#&#8203;8161](https://github.com/dragonflydb/dragonfly/pull/8161) - tests: Skip cache reclamation for v2 io loop by [@&#8203;abhijat](https://github.com/abhijat) in [#&#8203;8162](https://github.com/dragonflydb/dragonfly/pull/8162) - fix(search): reject FT.CREATE NUMERIC BLOCKSIZE 0 (divide-by-zero) by [@&#8203;vyavdoshenko](https://github.com/vyavdoshenko) in [#&#8203;8164](https://github.com/dragonflydb/dragonfly/pull/8164) - fix(stream): Validate all streams before mutating group state in XREADGROUP by [@&#8203;mkaruza](https://github.com/mkaruza) in [#&#8203;8158](https://github.com/dragonflydb/dragonfly/pull/8158) - fix(stream): XPENDING with an unknown consumer returns an empty list by [@&#8203;vyavdoshenko](https://github.com/vyavdoshenko) in [#&#8203;8168](https://github.com/dragonflydb/dragonfly/pull/8168) - chore: add debug logs for test\_replicaof\_reject\_on\_load by [@&#8203;kostasrim](https://github.com/kostasrim) in [#&#8203;8170](https://github.com/dragonflydb/dragonfly/pull/8170) - fix(list): set plain-node size from value length in QList::Replace by [@&#8203;vyavdoshenko](https://github.com/vyavdoshenko) in [#&#8203;8172](https://github.com/dragonflydb/dragonfly/pull/8172) - fix(tests): wait for loading to finish before first write in test\_shu… by [@&#8203;Shikha-code36](https://github.com/Shikha-code36) in [#&#8203;8174](https://github.com/dragonflydb/dragonfly/pull/8174) - server: Initialize cmd family during clone for alias by [@&#8203;abhijat](https://github.com/abhijat) in [#&#8203;8175](https://github.com/dragonflydb/dragonfly/pull/8175) - fix(rdb): keep consumer-group entries\_read when loading v2/v3 streams by [@&#8203;vyavdoshenko](https://github.com/vyavdoshenko) in [#&#8203;8176](https://github.com/dragonflydb/dragonfly/pull/8176) - fix(set): do not abort SRANDMEMBER on a zero-member set by [@&#8203;vyavdoshenko](https://github.com/vyavdoshenko) in [#&#8203;8177](https://github.com/dragonflydb/dragonfly/pull/8177) - fix(geo): COUNT without ANY returns the N closest members by [@&#8203;vyavdoshenko](https://github.com/vyavdoshenko) in [#&#8203;8178](https://github.com/dragonflydb/dragonfly/pull/8178) - fix(rdb): reject zero-member SET/HASH on RESTORE and skip empty keys on load by [@&#8203;vyavdoshenko](https://github.com/vyavdoshenko) in [#&#8203;8179](https://github.com/dragonflydb/dragonfly/pull/8179) - fix(generic): TTL of a logically expired key returns -2 instead of aborting by [@&#8203;vyavdoshenko](https://github.com/vyavdoshenko) in [#&#8203;8181](https://github.com/dragonflydb/dragonfly/pull/8181) - feat: improve ascii pack unpack operations performance by [@&#8203;BorysTheDev](https://github.com/BorysTheDev) in [#&#8203;8169](https://github.com/dragonflydb/dragonfly/pull/8169) - fix(rdb): reject odd-entry HASH/ZSET listpack on RESTORE by [@&#8203;vyavdoshenko](https://github.com/vyavdoshenko) in [#&#8203;8185](https://github.com/dragonflydb/dragonfly/pull/8185) - fix(stream): Report XREADGROUP errors in argument order, not shard order by [@&#8203;mkaruza](https://github.com/mkaruza) in [#&#8203;8186](https://github.com/dragonflydb/dragonfly/pull/8186) - fix(replication): bound RESP client parser against unbounded allocation by [@&#8203;vyavdoshenko](https://github.com/vyavdoshenko) in [#&#8203;8187](https://github.com/dragonflydb/dragonfly/pull/8187) - fix(server): keep the .rdb extension in the last-save path by [@&#8203;vyavdoshenko](https://github.com/vyavdoshenko) in [#&#8203;8184](https://github.com/dragonflydb/dragonfly/pull/8184) - fix(facade): reclaim V2 pipeline cache by [@&#8203;glevkovich](https://github.com/glevkovich) in [#&#8203;8192](https://github.com/dragonflydb/dragonfly/pull/8192) - fix(server): register SORT's STORE destination wherever the option appears by [@&#8203;vyavdoshenko](https://github.com/vyavdoshenko) in [#&#8203;8191](https://github.com/dragonflydb/dragonfly/pull/8191) - chore: disable epoll test\_replicaof\_reject\_on\_load by [@&#8203;kostasrim](https://github.com/kostasrim) in [#&#8203;8194](https://github.com/dragonflydb/dragonfly/pull/8194) - feat(geo): add GEOSEARCHSTORE command by [@&#8203;rounaknandanwar](https://github.com/rounaknandanwar) in [#&#8203;7984](https://github.com/dragonflydb/dragonfly/pull/7984) - fix(server): Fix journal omit breaking on stash bucket by [@&#8203;dranikpg](https://github.com/dranikpg) in [#&#8203;8157](https://github.com/dragonflydb/dragonfly/pull/8157) - fix(generic): SORT STORE with a missing source deletes the destination and replies 0 by [@&#8203;vyavdoshenko](https://github.com/vyavdoshenko) in [#&#8203;8190](https://github.com/dragonflydb/dragonfly/pull/8190) - feat(acl): Add JWT validation as an alternative to password AUTH by [@&#8203;tjovicic](https://github.com/tjovicic) in [#&#8203;8171](https://github.com/dragonflydb/dragonfly/pull/8171) - refactor: remove redis\_parser from rdb\_load\_context by [@&#8203;BorysTheDev](https://github.com/BorysTheDev) in [#&#8203;8198](https://github.com/dragonflydb/dragonfly/pull/8198) - refactor: improve OAHMap performance by [@&#8203;BorysTheDev](https://github.com/BorysTheDev) in [#&#8203;8201](https://github.com/dragonflydb/dragonfly/pull/8201) - test(acl): retry GEOSEARCHSTORE while the ACL grant propagates by [@&#8203;vyavdoshenko](https://github.com/vyavdoshenko) in [#&#8203;8203](https://github.com/dragonflydb/dragonfly/pull/8203) - chore(server): remove DEBUG COMPRESSION, HuffmanCheckTask, and deprecate --huffman\_table by [@&#8203;romange](https://github.com/romange) in [#&#8203;8205](https://github.com/dragonflydb/dragonfly/pull/8205) - fix: FT.INFO missing-index compatibility by [@&#8203;denis-samatov](https://github.com/denis-samatov) in [#&#8203;8199](https://github.com/dragonflydb/dragonfly/pull/8199) - core: Fix small tracker bugs by [@&#8203;abhijat](https://github.com/abhijat) in [#&#8203;8207](https://github.com/dragonflydb/dragonfly/pull/8207) - fix(generic): require every EXPIRE flag to hold instead of any one of them by [@&#8203;vyavdoshenko](https://github.com/vyavdoshenko) in [#&#8203;8189](https://github.com/dragonflydb/dragonfly/pull/8189) - fix(sort): stop SORT LIMIT from overflowing the entries range by [@&#8203;vyavdoshenko](https://github.com/vyavdoshenko) in [#&#8203;8212](https://github.com/dragonflydb/dragonfly/pull/8212) - fix(facade): cap inline requests at 64KB and stop eager bulk-length allocation by [@&#8203;vyavdoshenko](https://github.com/vyavdoshenko) in [#&#8203;8215](https://github.com/dragonflydb/dragonfly/pull/8215) - fix(facade): Reject unbounded memcached keys by [@&#8203;dranikpg](https://github.com/dranikpg) in [#&#8203;8213](https://github.com/dragonflydb/dragonfly/pull/8213) - fix(generic): stop RM from freeing a container under a yielding iteration by [@&#8203;vyavdoshenko](https://github.com/vyavdoshenko) in [#&#8203;8210](https://github.com/dragonflydb/dragonfly/pull/8210) - feat(ci): add manual regression tests controls by [@&#8203;glevkovich](https://github.com/glevkovich) in [#&#8203;8208](https://github.com/dragonflydb/dragonfly/pull/8208) - fix(debug): do not flush when the snapshot cannot be loaded by [@&#8203;vyavdoshenko](https://github.com/vyavdoshenko) in [#&#8203;8216](https://github.com/dragonflydb/dragonfly/pull/8216) - fix(facade): limit queue wakeup to V1 in EnqueueParsedCommand by [@&#8203;glevkovich](https://github.com/glevkovich) in [#&#8203;8223](https://github.com/dragonflydb/dragonfly/pull/8223) - fix(rdb): bound RESTORE allocations to the remaining input to prevent a remote OOM by [@&#8203;vyavdoshenko](https://github.com/vyavdoshenko) in [#&#8203;8222](https://github.com/dragonflydb/dragonfly/pull/8222) - perf(facade): batch parser memory refreshes by [@&#8203;glevkovich](https://github.com/glevkovich) in [#&#8203;8225](https://github.com/dragonflydb/dragonfly/pull/8225) - fix(stream): stop XREAD/XREADGROUP inside a script from aborting the server by [@&#8203;vyavdoshenko](https://github.com/vyavdoshenko) in [#&#8203;8228](https://github.com/dragonflydb/dragonfly/pull/8228) - perf(facade): skip empty reply batch setup by [@&#8203;glevkovich](https://github.com/glevkovich) in [#&#8203;8224](https://github.com/dragonflydb/dragonfly/pull/8224) - fix: restore shard\_repl\_backlog\_len for compatibility by [@&#8203;BorysTheDev](https://github.com/BorysTheDev) in [#&#8203;8209](https://github.com/dragonflydb/dragonfly/pull/8209) - fix: compatibility RDB\_TYPE\_SET\_LISTPACK with RedisShake by [@&#8203;BorysTheDev](https://github.com/BorysTheDev) in [#&#8203;8227](https://github.com/dragonflydb/dragonfly/pull/8227) - fix(cluster): don't crash when migration finalize pause times out by [@&#8203;Shikha-code36](https://github.com/Shikha-code36) in [#&#8203;8240](https://github.com/dragonflydb/dragonfly/pull/8240) - fix(protocol): detect RESP commands after empty inline lines by [@&#8203;romange](https://github.com/romange) in [#&#8203;8244](https://github.com/dragonflydb/dragonfly/pull/8244) - fix(server): make connection memory accounting constant time by [@&#8203;romange](https://github.com/romange) in [#&#8203;8245](https://github.com/dragonflydb/dragonfly/pull/8245) - fix(ci): disable GoogleTests by default by [@&#8203;glevkovich](https://github.com/glevkovich) in [#&#8203;8229](https://github.com/dragonflydb/dragonfly/pull/8229) - fix(deb): Change export syntax for DEB\_BUILD\_OPTIONS by [@&#8203;moredure](https://github.com/moredure) in [#&#8203;8214](https://github.com/dragonflydb/dragonfly/pull/8214) - fix(generic): run RM as a no-key transaction by [@&#8203;vyavdoshenko](https://github.com/vyavdoshenko) in [#&#8203;8218](https://github.com/dragonflydb/dragonfly/pull/8218) - test(acl): cover expired JWT authentication by [@&#8203;tjovicic](https://github.com/tjovicic) in [#&#8203;8221](https://github.com/dragonflydb/dragonfly/pull/8221) - fix(server): default SLOWLOG GET to 10 entries by [@&#8203;cuishuang](https://github.com/cuishuang) in [#&#8203;8248](https://github.com/dragonflydb/dragonfly/pull/8248) - feat: add rdb valkey support by [@&#8203;BorysTheDev](https://github.com/BorysTheDev) in [#&#8203;8251](https://github.com/dragonflydb/dragonfly/pull/8251) - chore: add docs/replication.md by [@&#8203;kostasrim](https://github.com/kostasrim) in [#&#8203;7997](https://github.com/dragonflydb/dragonfly/pull/7997) - chore: log error if migration does not finalize by [@&#8203;kostasrim](https://github.com/kostasrim) in [#&#8203;8258](https://github.com/dragonflydb/dragonfly/pull/8258) - server: Introduce cmd memory scope by [@&#8203;abhijat](https://github.com/abhijat) in [#&#8203;8151](https://github.com/dragonflydb/dragonfly/pull/8151) - fix(set): restore StringSet as the default SET implementation for 2.0 by [@&#8203;vyavdoshenko](https://github.com/vyavdoshenko) in [#&#8203;8257](https://github.com/dragonflydb/dragonfly/pull/8257) - perf(facade): simplify connection memory refreshes by [@&#8203;romange](https://github.com/romange) in [#&#8203;8246](https://github.com/dragonflydb/dragonfly/pull/8246) - fix(rdb): reject a hash with duplicate fields on RESTORE by [@&#8203;vyavdoshenko](https://github.com/vyavdoshenko) in [#&#8203;8260](https://github.com/dragonflydb/dragonfly/pull/8260) - server: Turn off scope based memory tracking by [@&#8203;abhijat](https://github.com/abhijat) in [#&#8203;8263](https://github.com/dragonflydb/dragonfly/pull/8263) - fix(server): free hll sds when PFADD rejects a corrupt sparse HLL by [@&#8203;foobar](https://github.com/foobar) in [#&#8203;8262](https://github.com/dragonflydb/dragonfly/pull/8262) - fix: allocate sorted map pointers on data heap by [@&#8203;kostasrim](https://github.com/kostasrim) in [#&#8203;8256](https://github.com/dragonflydb/dragonfly/pull/8256) - fix: replace broken awesome-prometheus-alerts link by [@&#8203;samber](https://github.com/samber) in [#&#8203;8283](https://github.com/dragonflydb/dragonfly/pull/8283) - fix(script): restore the caller's database after a script that runs SELECT by [@&#8203;vyavdoshenko](https://github.com/vyavdoshenko) in [#&#8203;8280](https://github.com/dragonflydb/dragonfly/pull/8280) - fix(replication): unblock blocked clients when the node becomes a replica by [@&#8203;vyavdoshenko](https://github.com/vyavdoshenko) in [#&#8203;8284](https://github.com/dragonflydb/dragonfly/pull/8284) - fix(multi): keep collecting after a queue-time error so EXEC aborts the whole transaction by [@&#8203;vyavdoshenko](https://github.com/vyavdoshenko) in [#&#8203;8281](https://github.com/dragonflydb/dragonfly/pull/8281) - ci: enable Epoll regression tests with RESP V2 by [@&#8203;glevkovich](https://github.com/glevkovich) in [#&#8203;8265](https://github.com/dragonflydb/dragonfly/pull/8265) - chore(tests): cleanup and simplify code, use helpers where possible by [@&#8203;abhijat](https://github.com/abhijat) in [#&#8203;8294](https://github.com/dragonflydb/dragonfly/pull/8294) - fix(server): correct CL.THROTTLE rounding and batch its reply by [@&#8203;jmealo](https://github.com/jmealo) in [#&#8203;8289](https://github.com/dragonflydb/dragonfly/pull/8289) **Full Changelog**: <https://github.com/dragonflydb/dragonfly/compare/v1.40.0...v2.0.0> </details> --- ### Configuration 📅 **Schedule**: (in timezone Europe/Rome) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate CLI](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC44My4xIiwidXBkYXRlZEluVmVyIjoiNDQuODMuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsicmVub3ZhdGUvY29udGFpbmVyIiwidHlwZS9tYWpvciJdfQ==-->
feat(container)!: Update image ghcr.io/dragonflydb/dragonfly (v1.40.2 ➔ v2.0.0)
All checks were successful
Labeler / Labeler (pull_request) Successful in 4s
Lint / actionlint (pull_request) Successful in 6s
Lint / yamllint (pull_request) Successful in 11s
AI PR Review / AI PR Review (pull_request) Successful in 30s
Konflate 2 resources changed, 1 caution
8c00590360
Collaborator

✅ Automated recommendation: APPROVE

Analysis engine: minimax/MiniMax-M2-7-anthropic@http://litellm.ai.svc.cluster.local:4000/v1 (anthropic)

Recommendation: Approve

A straightforward major-version update of the Dragonfly container image from v1.40.2 to v2.0.0, with no blockers.

Changes Summary

File Change
kubernetes/components/dragonfly/cluster.yaml Image tag v1.40.2 → v2.0.0

Assessment

  • Konflate render: Clean — no caution flags, render succeeded.
  • Image digest: No digest change detected (tag-only update, expected behavior).
  • Breaking changes flag: The ! in the PR title correctly signals a major version bump. The v2.0.0 release notes emphasize Redis/Valkey compatibility and production readiness rather than breaking API changes.
  • Configuration: No spec parameter adjustments appear needed for this upgrade; the Dragonfly CRD remains compatible with the existing replica/snapshot/svc template configuration.

Non-blocking Caveats

  • Missing @sha256: digest: Per AGENTS.md conventions, container images are ideally pinned by SHA digest for reproducibility. The repository's other images (e.g., immich-server, jellyfin) consistently use @sha256: pins. This PR uses only a tag reference (v2.0.0), which deviates from that pattern but is common for Renovate-managed tag-only updates.

No linked issue context, no evidence provider warnings, and no must-check items apply to this PR.

<!-- ai-pr-reviewer --> <!-- ai-pr-reviewer:{"version":1,"head_sha":"8c005903606317910e27189540eae40646f60da9","base_sha":"cd4cf8530dd54a77b0a512a96fdecb4d6c797cd9","review_scope":"full","review_result":"clean"} --> <!-- ai-pr-review-sha:8c005903606317910e27189540eae40646f60da9 --> <!-- ai-pr-review-fingerprint:ec01e16300ae686cdd737ba38f979ab2fb1ae02fe041fa037827e35e0e6dbb56|cfg:dc135bf6cf5118396b5a28eab4176beec455d4933ca0275a673e572fa47f54cf --> ✅ **Automated recommendation: APPROVE** _Analysis engine: minimax/MiniMax-M2-7-anthropic@http://litellm.ai.svc.cluster.local:4000/v1 (anthropic)_ ## Recommendation: Approve A straightforward major-version update of the Dragonfly container image from v1.40.2 to v2.0.0, with no blockers. ### Changes Summary | File | Change | |---|---| | `kubernetes/components/dragonfly/cluster.yaml` | Image tag `v1.40.2` → `v2.0.0` | ### Assessment - **Konflate render**: Clean — no caution flags, render succeeded. - **Image digest**: No digest change detected (tag-only update, expected behavior). - **Breaking changes flag**: The `!` in the PR title correctly signals a major version bump. The v2.0.0 release notes emphasize Redis/Valkey compatibility and production readiness rather than breaking API changes. - **Configuration**: No `spec` parameter adjustments appear needed for this upgrade; the Dragonfly CRD remains compatible with the existing replica/snapshot/svc template configuration. ### Non-blocking Caveats - **Missing `@sha256:` digest**: Per `AGENTS.md` conventions, container images are ideally pinned by SHA digest for reproducibility. The repository's other images (e.g., `immich-server`, `jellyfin`) consistently use `@sha256:` pins. This PR uses only a tag reference (`v2.0.0`), which deviates from that pattern but is common for Renovate-managed tag-only updates. No linked issue context, no evidence provider warnings, and no must-check items apply to this PR.
Collaborator

⚠ Caution

  • ghcr.io/dragonflydb/dragonfly: major image version bump v1.40.2 → v2.0.0; likely breaking changes

2 resources changed across 2 apps

image from to upstream
ghcr.io/dragonflydb/dragonfly v1.40.2 v2.0.0 ❔

konflate 0.6.4 · rendered 8c00590 · full diff →

<!-- konflate:pr-2121 --> **⚠ Caution** - `ghcr.io/dragonflydb/dragonfly`: major image version bump v1.40.2 → v2.0.0; likely breaking changes **2 resources changed** across 2 apps | image | from | to | upstream | |---|---|---|---| | `ghcr.io/dragonflydb/dragonfly` | `v1.40.2` | `v2.0.0` | ❔ | <sub>konflate 0.6.4 · rendered `8c00590` · [full diff →](https://konflate.aresu.eu/#/pr/2121)</sub>
GiorgioAresu deleted branch renovate/ghcr.io-dragonflydb-dragonfly-2.x 2026-09-18 09:00:35 +02:00
Sign in to join this conversation.
No description provided.