v0.16.11

MightyMoud/sidekickv0.16.11Jun 25, 2026by github-actions[bot]

AI Summary

This patch release introduces encryption-at-rest for S/MIME using AES-256-GCM and ChaCha20-Poly1305, along with Redis Sentinel support. It includes critical bug fixes for DANE verification, JMAP query handling, and webhook event ID collisions.

Key Highlights

  • Added AES-256-GCM and ChaCha20-Poly1305 encryption for S/MIME data
  • Added Redis Sentinel support as an in-memory store and cluster coordinator
  • Added `allowInvalidCerts` option for S3 endpoints
  • Fixed DANE verification to check for DNSSEC support before validating TLSA records
  • Fixed JMAP `Principal/query` broad result issues and webhook ID collisions

New Features

  • Encryption-at-rest support
  • S3 invalid certificate allowance
  • Redis Sentinel support

Full Release Notes

## [0.16.11] - 2026-06-25

If you are upgrading from v0.16.x, replace the binary (or run `docker pull`). If you are upgrading from v0.15.x and below, please read the [upgrading documentation](https://github.com/stalwartlabs/stalwart/blob/main/UPGRADING/v0_16.md) for more information on how to upgrade from previous versions.

## Added
- Encryption-at-rest: Support for `AES-256-GCM` and `ChaCha20-Poly1305` for S/MIME (#161).
- S3: Support for `allowInvalidCerts` option to allow connecting to S3 endpoints with invalid TLS certificates.
- Redis Sentinel support as an in-memory store and cluster coordinator backend (#2430).

## Changed

## Fixed
- DANE: Verify DNSSEC is supported by the resolver before attempting to validate TLSA records.
- TLS: Update search index when file-backed certificates are refreshed.
- JMAP: `Principal/query` returns broad results when a `name` or `email` filter cannot be resolved.
- Webhooks: event IDs collide for same event type emitted in the same second.


<hr />

### Check binary attestation [here](https://github.com/stalwartlabs/stalwart/attestations/32653276)