v0.16.13

stalwartlabs/stalwartv0.16.13Jul 12, 2026by github-actions[bot]

AI Summary

Adds FreeBSD support and fixes OAuth resource indicators, PostgreSQL channel binding, and JMAP VacationResponse capabilities.

Key Highlights

  • FreeBSD platform support added
  • OAuth resource indicators fixed for imap, smtp, pop3, and sieve
  • PostgreSQL channel binding implementation
  • JMAP Capabilities return RFC-3339 conformant UTCDate literals

New Features

  • FreeBSD support
  • OAuth resource indicator fixes
  • PostgreSQL channel binding implementation
  • JMAP VacationResponse fixes

Full Release Notes

## [0.16.13] - 2026-07-12

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
- FreeBSD support.

## Changed

## Fixed
- OAuth resource indicators: Accept `imap`, `smtp`, `pop3` and `sieve` as valid resource indicators for OAuth access tokens.
- PostgreSQL: Incomplete channel binding implementation.
- JMAP:
  - VacationResponse: `isEnabled` reset to false whenever properties are changed.
  - Capabilities: Return RFC-3339-conformant UTCDate literals in capabilities: min `0001-01-01T00:00:00Z`, max `9999-12-31T23:59:59Z`.
- Directory: Update local groups only when the external directory includes a group attribute.
- DNS Management: 
  - CAA management deletes too third-party CAA entries.
  - Multiple provider fixes (see `dns-update` crate changelog).
- Reject invalid duration values (e.g. `1h30m`).
- Branding: Custom logos for domains do not work.
- Sieve: add `Received` headers to auto-generated messages and detect loops.
- MTA: Resume queue processing does not work.
- Misconfigured in-memory store cannot be recovered in recovery mode.


<hr />

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