v0.16.26
stalwartlabs/stalwartv0.16.26Oct 11, 2026by github-actions[bot]
Upgrading?
AI Summary
This release introduces `sd_notify` support and addresses critical bugs in DNSSEC, RocksDB, Milter, OIDC, and JMAP functionalities. It also includes specific fixes for mailbox handling and account authentication logic.
Key Highlights
- Added `sd_notify` support for better integration with process managers like systemd.
- Fixed DNSSEC validation by switching to a patched `hickory-resolver` fork.
- Optimized RocksDB blob garbage collection to rewrite stored blobs during compaction.
- Resolved JMAP issues regarding mailbox naming, email submission callbacks, and vacation response activation.
- Fixed OIDC account building to use email claims when username claims are missing.
New Features
- sd_notify support
- JMAP improvements: allows moving mailboxes and rejects case-only renames
- JMAP EmailSubmission callback fixes
- JMAP VacationResponse activation logic fix
Full Release Notes
## [0.16.26] - 2026-10-11 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 - `sd_notify` support. - JMAP: `Mailbox/set` allows moving a mailbox under a parent that already has a child with the same name, and rejects renames that only change the case of a mailbox name with `alreadyExists`. ## Changed ## Fixed - DNSSEC: Use `hickory-resolver` patched fork at https://github.com/stalwartlabs/hickory-dns. - RocksDB: Blob garbage collection rewrites every stored blob on each compaction of the blobs column family, about once per 128MB of new mail. - Milter: End-of-headers is not sent to milters that negotiate `SMFIP_NOHDRS` without `SMFIP_NOEOH`, so the transaction stalls until it times out. - OIDC: When the access token lacks the `claimUsername` claim but has an `email` claim, the account is built from `email` without consulting the userinfo endpoint. - JMAP: - `onSuccessUpdateEmail` and `onSuccessDestroyEmail` entries in `EmailSubmission/set` that name an existing submission by id update or destroy the Email with the same id instead of the submission's own Email. - A `VacationResponse/set` that only sets `isEnabled` on an account without a vacation response activates an empty Sieve script. <hr /> ### Check binary attestation [here](https://github.com/stalwartlabs/stalwart/attestations/54830691)
Related Repositories
A cross-platform desktop All-in-One assistant for Claude Code, Codex, OpenCode, OpenClaw, Grok Build & Hermes Agent. Only official website: ccswitch.io
An open-source remote desktop application designed for self-hosting, as an alternative to TeamViewer.
Build smaller, faster, and more secure desktop and mobile applications with a web frontend.
π RuView turns commodity WiFi signals into real-time spatial intelligence, vital sign monitoring, and presence detection — all without a single pixel of video.
Incredibly fast JavaScript runtime, bundler, test runner, and package manager – all in one