# Changelog

All notable changes to this project will be documented in this file.

## [0.34.0] - 2026-05-19

### Features

- Enable lz4 and zstd SlateDB compression codecs ([#461](https://github.com/s2-streamstore/s2/issues/461))

### Bug Fixes

- Resolve lite stream config reconfigure defaults ([#465](https://github.com/s2-streamstore/s2/issues/465))
- Map control-plane transaction conflicts ([#466](https://github.com/s2-streamstore/s2/issues/466))
- Reject appends during stream deletion ([#469](https://github.com/s2-streamstore/s2/issues/469))
- Serialize delete-on-empty terminal trim ([#363](https://github.com/s2-streamstore/s2/issues/363))
- Switch global allocator to jemalloc ([#472](https://github.com/s2-streamstore/s2/issues/472))

### Refactor

- Use prefix scans for stream record checks ([#464](https://github.com/s2-streamstore/s2/issues/464))

### Miscellaneous Tasks

- Upgrade SlateDB to 0.13.0 ([#463](https://github.com/s2-streamstore/s2/issues/463))
- Unused deps ([#467](https://github.com/s2-streamstore/s2/issues/467))

<!-- generated by git-cliff -->

## [0.33.0] - 2026-05-15

### Bug Fixes

- Preserve explicit optional config values ([#459](https://github.com/s2-streamstore/s2/issues/459))

<!-- generated by git-cliff -->

## [0.32.0] - 2026-05-14

### Bug Fixes

- Clarify PUT ensure semantics ([#450](https://github.com/s2-streamstore/s2/issues/450))

<!-- generated by git-cliff -->

## [0.31.0] - 2026-05-10

### Refactor

- Introduce resource-specific create intents ([#437](https://github.com/s2-streamstore/s2/issues/437))

### Miscellaneous Tasks

- Dep updates ([#438](https://github.com/s2-streamstore/s2/issues/438))

<!-- generated by git-cliff -->

## [0.30.6] - 2026-05-04

<!-- generated by git-cliff -->

## [0.30.5] - 2026-04-27

### Refactor

- Use `strum` instead of `enum_ordinalize` ([#426](https://github.com/s2-streamstore/s2/issues/426))

<!-- generated by git-cliff -->

## [0.30.4] - 2026-04-24

### Bug Fixes

- Treat encryption algorithm mismatch as storage error ([#421](https://github.com/s2-streamstore/s2/issues/421))

### Miscellaneous Tasks

- Error name and message ([#418](https://github.com/s2-streamstore/s2/issues/418))

<!-- generated by git-cliff -->

## [0.30.3] - 2026-04-22

### Bug Fixes

- Preserve offending seq num in limit error ([#414](https://github.com/s2-streamstore/s2/issues/414))
- Model record limits as max assignable sequence numbers ([#417](https://github.com/s2-streamstore/s2/issues/417))

<!-- generated by git-cliff -->

## [0.30.2] - 2026-04-21

### Bug Fixes

- Cap random-nonce encrypted stream messages ([#412](https://github.com/s2-streamstore/s2/issues/412))

<!-- generated by git-cliff -->

## [0.30.1] - 2026-04-20

<!-- generated by git-cliff -->

## [0.30.0] - 2026-04-20

### Bug Fixes

- Avoid `Streamer missing in action` errors ([#404](https://github.com/s2-streamstore/s2/issues/404))

### Refactor

- [**breaking**] Replace encryption modes with stream cipher metadata and key-only headers ([#403](https://github.com/s2-streamstore/s2/issues/403))

<!-- generated by git-cliff -->

## [0.29.32] - 2026-04-17

### Bug Fixes

- Dashed string repr for AEGIS-256 and AES-256-GCM modes ([#400](https://github.com/s2-streamstore/s2/issues/400))

<!-- generated by git-cliff -->

## [0.29.31] - 2026-04-16

### Features

- Add `DecryptionFailed` error code ([#396](https://github.com/s2-streamstore/s2/issues/396))

<!-- generated by git-cliff -->

## [0.29.30] - 2026-04-16

### Features

- Add startup hint for s2 env vars ([#393](https://github.com/s2-streamstore/s2/issues/393))

<!-- generated by git-cliff -->

## [0.29.29] - 2026-04-15

### Refactor

- Remove implicit optional config resolution ([#389](https://github.com/s2-streamstore/s2/issues/389))

### Miscellaneous Tasks

- Dep updates ([#391](https://github.com/s2-streamstore/s2/issues/391))

<!-- generated by git-cliff -->

## [0.29.28] - 2026-04-14

### Features

- Request-time data encryption ([#349](https://github.com/s2-streamstore/s2/issues/349))
- Enforce allowed encryption modes via stream config ([#376](https://github.com/s2-streamstore/s2/issues/376))

### Refactor

- Clarify encryption spec, mode, and format semantics ([#375](https://github.com/s2-streamstore/s2/issues/375))
- Decouple JSON extraction rejection from axum ([#348](https://github.com/s2-streamstore/s2/issues/348))

### Testing

- Stabilize follow-mode timing coverage ([#371](https://github.com/s2-streamstore/s2/issues/371))
- Simplify backend integration tests and tighten read coverage ([#374](https://github.com/s2-streamstore/s2/issues/374))

### Miscellaneous Tasks

- Update basin endpoint from b.aws.s2.dev to b.s2.dev ([#346](https://github.com/s2-streamstore/s2/issues/346))

<!-- generated by git-cliff -->

## [0.29.27] - 2026-03-21

### Miscellaneous Tasks

- Update Cargo.lock dependencies

<!-- generated by git-cliff -->

## [0.29.26] - 2026-03-20

### Features

- Align basin info with stream info ([#338](https://github.com/s2-streamstore/s2/issues/338))

<!-- generated by git-cliff -->

## [0.29.25] - 2026-03-19

### Refactor

- Remove basin creating state ([#333](https://github.com/s2-streamstore/s2/issues/333))

<!-- generated by git-cliff -->

## [0.29.24] - 2026-03-17

### Miscellaneous Tasks

- Update Cargo.toml dependencies

<!-- generated by git-cliff -->

## [0.29.23] - 2026-03-15

### Bug Fixes

- Guard full-delete trim finalization on trim-point state ([#330](https://github.com/s2-streamstore/s2/issues/330))

<!-- generated by git-cliff -->

## [0.29.22] - 2026-03-13

### Bug Fixes

- Make delete-on-empty armings prospective ([#314](https://github.com/s2-streamstore/s2/issues/314))

### Performance

- Avoid intermediate SSE batch allocations ([#320](https://github.com/s2-streamstore/s2/issues/320))

<!-- generated by git-cliff -->

## [0.29.21] - 2026-03-06

### Bug Fixes

- Allow http endpoints for S3-compatible object stores ([#303](https://github.com/s2-streamstore/s2/issues/303))
- Preserve follow wait budget after lagged recovery ([#311](https://github.com/s2-streamstore/s2/issues/311))
- Initialize durability notifier from close status ([#312](https://github.com/s2-streamstore/s2/issues/312))

<!-- generated by git-cliff -->

## [0.29.20] - 2026-03-06

### Features

- Default append pipelining with durability-gated acks ([#289](https://github.com/s2-streamstore/s2/issues/289))

### Bug Fixes

- Keep follow sessions alive across dormancy ([#301](https://github.com/s2-streamstore/s2/issues/301))

### Miscellaneous Tasks

- Dep updates ([#299](https://github.com/s2-streamstore/s2/issues/299))

<!-- generated by git-cliff -->

## [0.29.19] - 2026-03-04

<!-- generated by git-cliff -->

## [0.29.18] - 2026-03-03

### Bug Fixes

- Handle lagged bgtask triggers immediately ([#283](https://github.com/s2-streamstore/s2/issues/283))

### Miscellaneous Tasks

- Upgrade sl8 to 0.11 ([#285](https://github.com/s2-streamstore/s2/issues/285))
- Upgrade schemars dep to 1.2 ([#287](https://github.com/s2-streamstore/s2/issues/287))

<!-- generated by git-cliff -->

## [0.29.17] - 2026-03-02

### Bug Fixes

- Honor read wait budget across heartbeats ([#280](https://github.com/s2-streamstore/s2/issues/280))

<!-- generated by git-cliff -->

## [0.29.16] - 2026-02-28

### Bug Fixes

- Avoid caching dead streamer clients ([#270](https://github.com/s2-streamstore/s2/issues/270))

<!-- generated by git-cliff -->

## [0.29.15] - 2026-02-27

### Bug Fixes

- Enable GC by default ([#264](https://github.com/s2-streamstore/s2/issues/264))

<!-- generated by git-cliff -->

## [0.29.14] - 2026-02-26

### Miscellaneous Tasks

- Update Cargo.lock dependencies

<!-- generated by git-cliff -->

## [0.29.13] - 2026-02-25

### Miscellaneous Tasks

- Update Cargo.lock dependencies

<!-- generated by git-cliff -->

## [0.29.12] - 2026-02-25

### Miscellaneous Tasks

- Update Cargo.lock dependencies

<!-- generated by git-cliff -->

## [0.29.11] - 2026-02-25

### Miscellaneous Tasks

- Update Cargo.lock dependencies

<!-- generated by git-cliff -->

## [0.29.10] - 2026-02-25

### Miscellaneous Tasks

- Update Cargo.lock dependencies

<!-- generated by git-cliff -->

## [0.29.9] - 2026-02-25

### Miscellaneous Tasks

- Update Cargo.lock dependencies

<!-- generated by git-cliff -->

## [0.29.8] - 2026-02-24

### Features

- Support creating resources from spec ([#239](https://github.com/s2-streamstore/s2/issues/239))

<!-- generated by git-cliff -->

## [0.29.7] - 2026-02-23

### Features

- Add --no-cors flag to Lite ([#238](https://github.com/s2-streamstore/s2/issues/238))

### Refactor

- Singleflight streamer lifecycle state ([#227](https://github.com/s2-streamstore/s2/issues/227))

<!-- generated by git-cliff -->

## [0.29.6] - 2026-02-17

### Miscellaneous Tasks

- Update Cargo.lock dependencies

<!-- generated by git-cliff -->

## [0.29.5] - 2026-02-17

### Miscellaneous Tasks

- Update Cargo.lock dependencies

<!-- generated by git-cliff -->

## [0.29.4] - 2026-02-16

### Miscellaneous Tasks

- Update Cargo.lock dependencies

<!-- generated by git-cliff -->

## [0.29.3] - 2026-02-16

### Miscellaneous Tasks

- Update Cargo.lock dependencies

<!-- generated by git-cliff -->

## [0.29.2] - 2026-02-15

### Miscellaneous Tasks

- Update Cargo.lock dependencies

<!-- generated by git-cliff -->

## [0.29.1] - 2026-02-15

### Miscellaneous Tasks

- Add crate-level doc comment ([#213](https://github.com/s2-streamstore/s2/issues/213))

<!-- generated by git-cliff -->

## [0.29.0] - 2026-02-15

### Bug Fixes

- Correct command applied range check ([#209](https://github.com/s2-streamstore/s2/issues/209))
- Avoid follow error on exact limit ([#208](https://github.com/s2-streamstore/s2/issues/208))
- [**breaking**] Harden Bash hashing ([#207](https://github.com/s2-streamstore/s2/issues/207))

<!-- generated by git-cliff -->

## [0.28.4] - 2026-02-12

### Bug Fixes

- Return err for stream methods if stream is being deleted ([#196](https://github.com/s2-streamstore/s2/issues/196))

### Miscellaneous Tasks

- Introduce cargo-deny and justfile improvements ([#193](https://github.com/s2-streamstore/s2/issues/193))

<!-- generated by git-cliff -->

## [0.28.3] - 2026-02-07

### Miscellaneous Tasks

- Update Cargo.lock dependencies

<!-- generated by git-cliff -->

## [0.28.2] - 2026-02-06

### Bug Fixes

- Use memory durability for DOE scan ([#190](https://github.com/s2-streamstore/s2/issues/190))

<!-- generated by git-cliff -->

## [0.28.1] - 2026-02-06

### Bug Fixes

- Read session spinning if all records deleted ([#184](https://github.com/s2-streamstore/s2/issues/184))

### Miscellaneous Tasks

- Improve integration test organization ([#186](https://github.com/s2-streamstore/s2/issues/186))

<!-- generated by git-cliff -->

## [0.28.0] - 2026-02-06

### Features

- [**breaking**] Delete-on-empty ([#158](https://github.com/s2-streamstore/s2/issues/158))

### Bug Fixes

- Append session should also `create-stream-on-append` if configured ([#180](https://github.com/s2-streamstore/s2/issues/180))

<!-- generated by git-cliff -->

## [0.27.5] - 2026-02-05

### Miscellaneous Tasks

- Update Cargo.lock dependencies

<!-- generated by git-cliff -->

## [0.27.4] - 2026-02-05

### Miscellaneous Tasks

- Install aws-lc-rs as default crypto provider for rustls ([#171](https://github.com/s2-streamstore/s2/issues/171))

<!-- generated by git-cliff -->

## [0.27.3] - 2026-02-05

### Miscellaneous Tasks

- Rejig versioning and release workflow ([#163](https://github.com/s2-streamstore/s2/issues/163))

<!-- generated by git-cliff -->

## [0.27.2] - 2026-02-05

### Miscellaneous Tasks

- Update Cargo.lock dependencies

<!-- generated by git-cliff -->

## [0.27.1] - 2026-02-04

### Miscellaneous Tasks

- Update Cargo.lock dependencies

<!-- generated by git-cliff -->

## [0.27.0] - 2026-02-03

### Features

- *(lite)* [**breaking**] Bgtasks for basin/stream deletion and stream trimming ([#148](https://github.com/s2-streamstore/s2/issues/148))

### Bug Fixes

- *(lite)* Validate read timestamp >= until ([#153](https://github.com/s2-streamstore/s2/issues/153))

<!-- generated by git-cliff -->

## [0.26.9] - 2026-02-02

### Miscellaneous Tasks

- Update Cargo.lock dependencies

<!-- generated by git-cliff -->

## [0.26.8] - 2026-01-30

### Miscellaneous Tasks

- Update Cargo.lock dependencies

<!-- generated by git-cliff -->

## [0.26.7] - 2026-01-30

### Miscellaneous Tasks

- Update Cargo.lock dependencies

<!-- generated by git-cliff -->

## [0.26.6] - 2026-01-30

### Miscellaneous Tasks

- Update Cargo.lock dependencies

<!-- generated by git-cliff -->

## [0.26.5] - 2026-01-30

### Miscellaneous Tasks

- Update Cargo.lock dependencies

<!-- generated by git-cliff -->

## [0.26.4] - 2026-01-29

### Miscellaneous Tasks

- Update Cargo.lock dependencies

<!-- generated by git-cliff -->

## [0.26.3] - 2026-01-29

### Miscellaneous Tasks

- Update Cargo.lock dependencies

<!-- generated by git-cliff -->

## [0.26.2] - 2026-01-29

### Miscellaneous Tasks

- Update Cargo.lock dependencies

<!-- generated by git-cliff -->

## [0.26.1] - 2026-01-29

### Miscellaneous Tasks

- Update Cargo.lock dependencies

<!-- generated by git-cliff -->

## [0.26.0] - 2026-01-28

### Features

- *(cli)* [**breaking**] Integrate s2-cli into workspace with lite subcommand ([#103](https://github.com/s2-streamstore/s2/issues/103))

### Miscellaneous Tasks

- Improve health check to use newly-exposed sl8 status ([#100](https://github.com/s2-streamstore/s2/issues/100))

<!-- generated by git-cliff -->
