# Changelog

## [3.8.0] - 2026-07-14

### Added

- Added follower reads with configurable staleness bounds, reducing read latency for geographically distributed clients.
- Added incremental snapshot transfer with resumable downloads for faster replica recovery over unreliable links.
- Added per-tenant request quotas and Prometheus metrics for throttled operations.
- Added online compaction controls to the administrative API and CLI.

### Fixed

- Fixed a Raft election race that could briefly delay leader convergence after simultaneous node restarts.
- Fixed watch streams occasionally missing delete events during range compaction.
- Fixed excessive memory use when processing large transactions containing repeated keys.
- Fixed TLS certificate reloads failing when the certificate chain file was replaced atomically.

### Changed

- Changed the default snapshot interval from 100,000 to 250,000 committed entries.
- Changed range scans to return a continuation token when the configured response-size limit is reached.
- Changed client retry behavior to honor server-provided backoff hints.
- Deprecated the legacy v1 administrative endpoints; they will be removed in 4.0.

## [3.7.2] - 2026-06-18

### Added

- Added a diagnostic endpoint exposing replication lag and last-applied indexes for each replica.
- Added support for rotating audit-log files by size as well as by time.

### Fixed

- Fixed a deadlock during membership changes when a node was removed while transferring leadership.
- Fixed lease expiration notifications being delayed under sustained write load.
- Fixed snapshot cleanup leaving temporary files after interrupted restores.
- Fixed incorrect disk-usage reporting for stores using filesystem compression.
- Fixed clients receiving stale cluster topology after reconnecting through a load balancer.

### Changed

- Changed snapshot verification failures to include the affected key range and checksum details.
- Changed the CLI to redact credentials embedded in endpoint URLs from debug output.

## [3.7.1] - 2026-05-29

### Added

- Added configurable connection limits per client IP.
- Added histogram metrics for commit latency, proposal queue time, and snapshot installation duration.
- Added a `--dry-run` option to the cluster membership repair command.

### Fixed

- Fixed linearizable reads timing out unnecessarily immediately after a leadership transfer.
- Fixed a regression that prevented empty values from being restored from snapshots.
- Fixed compaction workers consuming excessive CPU when no reclaimable data was present.
- Fixed IPv6 peer addresses being serialized incorrectly in cluster status output.
- Fixed authentication tokens remaining valid beyond their configured lifetime after a clock adjustment.

### Changed

- Changed peer health checks to use exponential backoff after repeated failures.
- Changed startup validation to reject duplicate node IDs before opening the data directory.
- Changed warning logs for transient client disconnects to debug level.