Repository navigation
chore(deps): bump stalwartlabs/stalwart docker tag to v0.16.27 (main) - #13750
Draft
renovate[bot] wants to merge 1 commit into
Draft
renovate[bot] wants to merge 1 commit into
renovate[bot] wants to merge 1 commit into
Conversation
renovate
Bot
requested review from
ChristophWurst,
GretaD and
kesselb
as code owners
September 27, 2026 22:01
renovate
Bot
force-pushed
the
renovate/main-stalwartlabs-stalwart-0.x
branch
from
September 28, 2026 10:50
249a945 to
c801159
Compare
renovate
Bot
force-pushed
the
renovate/main-stalwartlabs-stalwart-0.x
branch
2 times, most recently
from
October 4, 2026 20:24
a11a621 to
07c5825
Compare
renovate
Bot
force-pushed
the
renovate/main-stalwartlabs-stalwart-0.x
branch
from
October 12, 2026 09:46
07c5825 to
89acf03
Compare
renovate
Bot
force-pushed
the
renovate/main-stalwartlabs-stalwart-0.x
branch
3 times, most recently
from
October 18, 2026 18:32
19aa6e0 to
a8454c7
Compare
renovate
Bot
force-pushed
the
renovate/main-stalwartlabs-stalwart-0.x
branch
3 times, most recently
from
October 23, 2026 13:18
6cacacb to
5ef1a87
Compare
Contributor
|
@SebastianKrupinski it seems we need a change for the newer stalwart versions, can you take a look? |
Contributor
yup, its on my list, but at the moment v0.16 completely changed the spin up process so we can't update yet |
SebastianKrupinski
requested changes
Oct 23, 2026
SebastianKrupinski
left a comment
Contributor
There was a problem hiding this comment.
Not ready yet
ChristophWurst
marked this pull request as draft
October 23, 2026 16:08
auto-merge was automatically disabled
October 23, 2026 16:08
Pull request was converted to draft
renovate
Bot
force-pushed
the
renovate/main-stalwartlabs-stalwart-0.x
branch
from
October 25, 2026 22:33
5ef1a87 to
84bc3a4
Compare
renovate
Bot
force-pushed
the
renovate/main-stalwartlabs-stalwart-0.x
branch
from
October 26, 2026 20:00
84bc3a4 to
acd72f8
Compare
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
renovate
Bot
force-pushed
the
renovate/main-stalwartlabs-stalwart-0.x
branch
from
October 27, 2026 14:21
acd72f8 to
d5da83e
Compare
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Note
This PR body was truncated due to platform limits.
This PR contains the following updates:
v0.15.5→v0.16.27Release Notes
stalwartlabs/stalwart
v0.16.27Compare Source
[0.16.27] - 2026-10-18
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 for more information on how to upgrade from previous versions.Added
Changed
Fixed
APPENDandCOPY/MOVEinto another account's mailbox do not change the JMAPEmailDeliverystate.SEARCH RETURNwithMINorMAXalongsideALLreturns only the minimum and maximum inALL, andSAVEcombined withMINorMAXandALLorCOUNTsaves only the minimum and maximum instead of every match.VTIMEZONEdefinitions it carries, so an occurrence moved by an external organizer can reference aTZID(for exampleW. Europe Standard Time) the stored event no longer defines, and Apple Calendar shows both the original and the moved occurrence.http://127.0.0.1:45678) are not matched against registered loopback URIs on any port and are rejected by dynamic client registration.PROPFINDallpropreturnsDAV:current-user-principal, so Windows Explorer shows every file and folder under the account name.Check binary attestation here
v0.16.26Compare Source
[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 for more information on how to upgrade from previous versions.Added
sd_notifysupport.Mailbox/setallows 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 withalreadyExists.Changed
Fixed
hickory-resolverpatched fork at https://github.com/stalwartlabs/hickory-dns.SMFIP_NOHDRSwithoutSMFIP_NOEOH, so the transaction stalls until it times out.claimUsernameclaim but has anemailclaim, the account is built fromemailwithout consulting the userinfo endpoint.onSuccessUpdateEmailandonSuccessDestroyEmailentries inEmailSubmission/setthat name an existing submission by id update or destroy the Email with the same id instead of the submission's own Email.VacationResponse/setthat only setsisEnabledon an account without a vacation response activates an empty Sieve script.Check binary attestation here
v0.16.25Compare Source
[0.16.25] - 2026-10-05
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 for more information on how to upgrade from previous versions.Added
Changed
Fixed
MaskedEmailwithemailDomainfails withforbiddenfor every domain when the account has addresses on more than one domain.mobilesync), are answered with the Outlook settings instead of error 601.LOGINandAUTHENTICATEwith a wrong, expired or unknown app password or API key are answered with an untaggedNO, so clients keep waiting for the command to complete until the connection times out.NObefore the connection is closed.DkimManagementtask is created for them.PYZOR.matchexpression are never enforced, including the global queue quota created on first start.LOG,LOG.old.*) grows without limit because log rotation and retention are left at RocksDB defaults.Check binary attestation here
v0.16.24Compare Source
[0.16.24] - 2026-09-27
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 for more information on how to upgrade from previous versions.Added
Changed
Fixed
TLSArecords are looked up for every MX host, including hosts whose zone is not DNSSEC signed.PushSubscriptioncreated within the verification rate limit window of another one on the same account never receives itsPushVerification, since the blocked verification is dropped instead of being sent once the window expires.audclaim is derived from a hand-written parse of the push URL, so a crafted push URL can make the server sign a token for a push service other than the one the request is sent to.Email/importrejects ablobIdthat refers to aBlob/uploadcreation id in the same request ("#u0") withInvalid blob id..Email/setwith a fullmailboxIdsobject identical to the current mailboxes, together with a keyword change, stores the message with IMAP UID 0, so IMAP clients stop seeing it.outboundMtarole stops replying toDATAand to JMAP submissions once about 1024 messages have been queued on it.DATAstage Sieve script does not see headers added by milters or MTA hooks, and discards every milter and MTA hook change when it edits the message.DELETEand switch to chunks only after a timeout.COPYandMOVEfail withNO [CONTACTADMIN]when another session changes the same message at the same time.<Encryption>TLS</Encryption>, which Outlook reads as STARTTLS.Check binary attestation here
v0.16.23Compare Source
[0.16.23] - 2026-09-21
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 for more information on how to upgrade from previous versions.Added
bit_andfunction.Changed
Fixed
RCPT TOand then rejected at local delivery with550 5.5.0 Mailbox not found.spfelements per record and theversionelement of a DMARC aggregate report is written as1instead of1.0.addr-typeinOriginal-Recipient(rfc822;rfc822;user@example.org).TOP msg ncounts thenlines from the first byte of the message instead of from the first byte of the body..is not byte-stuffed.envelope "orcpt"yields the bare address for anORCPTsupplied over SMTP. It now carries theaddr-typeprefix in every case, as required by RFC 6009._acme-challengeTXT records published for a DNS-01 authorization are never removed.hickory-resolverrace that cancels the TCP retry when two nameservers return a truncated response in parallel.email,preferred_usernameorupnclaim are always authenticated against the default directory.failOnTimeoutis disabled, so an index whose batches take longer thanpollIntervalxmaxRetriesnever completes an indexing task and resubmits the same batch indefinitely.Applicationoffline.INCRandEXPIREas aMULTI/EXECtransaction, whoseMOVEDredirects collapse into a singleEXECABORTthat never refreshes the slot map.PING.Check binary attestation here
v0.16.22Compare Source
[0.16.22] - 2026-09-13
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 for more information on how to upgrade from previous versions.Added
Changed
Fixed
PROPFINDresponses do not declare the namespace of every requested property on theDAV:multistatuselement.STARTTLSis discarded once the TLS handshake completes, as required by RFC 3207.matchexpressions evaluate theirif/thenconditions.failinstead ofnonein logs.temperrorinstead offail.ptag is only applied, asp=none, when it contains aruatag, even if it declaresspornp.Applicationis discarded when itsresourceUrlchanges or the record is deleted, so the next unpack fetches the new resource..to MX record hostnames.fileintoby a user script are treated as ham and are no longer moved to Junk when classified as spam.SELECT,EXAMINEandSTATUSon a shared mailbox require ther(read) right.AUTHENTICATEis refused on clear-text connections unlessallowPlainTextAuthis enabled, and the greeting andCAPABILITYresponse advertiseLOGINDISABLEDinstead of theAUTH=mechanisms in that case.STARTTLSorSTLSare discarded once the TLS handshake completes.STARTTLS, are aborted after the listener'stlsTimeout, releasing the connection slot.encryptionKeyor HMACsignatureKeycannot be read, instead of an empty key.{local}and{domain}filter placeholders are escaped.CalendarEvent/setstoresuseDefaultAlertsper user, andCalendarEvent/getreturnsfalsewhen it was never set.CalendarEvent/getreturnsnullforbaseEventIdunless the id is a synthetic recurrence instance.CalendarEvent/getreturnsnullfor requestedrecurrenceRuleandrecurrenceOverridesproperties on synthetic recurrence instances.CalendarEvent/getandContactCard/getreturn onlyidwhen thepropertiesargument is an empty list, instead of every property.Check binary attestation here
v0.16.21Compare Source
[0.16.21] - 2026-09-06
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 for more information on how to upgrade from previous versions.Added
Changed
SieveUserInterpreter.dkimSignDomainsetting, which defaults to the account's own domain.Fixed
CalendarEvent/setrequests that ask for scheduling messages are rejected with aforbiddenerror when the account cannot send them.Calendar/getandAddressBook/getreturn every property when thepropertiesargument is omitted ornull.pingevents advertise the interval in seconds rather than milliseconds.STATUSorFETCHbatch receives its tagged completion, instead of the first failing command dropping the responses for all commands queued behind it.DAV:quota-available-bytes.METHOD:REQUESTcarrying theRECURRENCE-IDinstead of aMETHOD:ADD.fileinto :specialuseandspecialuse_existsaccept special-use attributes in the\Trashform.[::]) fall back to IPv4 when socket creation fails withEPROTONOSUPPORT.Check binary attestation here
v0.16.20Compare Source
[0.16.20] - 2026-08-30
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 for more information on how to upgrade from previous versions.Added
CalendarEvent/setsupport for updating and deleting synthetic ids (#2925).Changed
Fixed
TLSArecords are looked up whenever the MX RRset is signed, even when the MX host's own zone is not.TLSArecords fall back to the configured TLS strategy, permitting cleartext delivery where TLS is required.af-south-1region configuration.rediss://URLs now connect to the master over TLS instead of silently falling back to cleartext.Message-IDheaders use the hostname of the node that built the message instead of the configured server hostname.inboundReportAddressesmatch are only discarded when they actually contain a report (#1088).StaleorInactiveindefinitely.Check binary attestation here
v0.16.19Compare Source
[0.16.19] - 2026-08-24
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 for more information on how to upgrade from previous versions.Added
oauthClientIdsetting inApplication, which allows the WebUI to use a different OAuth client than the default.env.spam.scoreandenv.spam.is_spamvariables, which expose the spam filter result to system scripts running at theDATAstage.vCardVersionsetting inAddressBook, which allows the default vCard version to be specified when the client does not request a specific version.Changed
VARBINARY(255)with a full-length primary key instead ofTINYBLOB. Note: Existing deployments should run, once per table, for each of the tablesa,d,e,f,g,h,j,k,l,m,n,o,p,q,r,s,t,u,w,xandythe commandALTER TABLE a MODIFY k VARBINARY(255) NOT NULL;.Fixed
mailto:URI percent-encodes a fullname-addrare silently dropped from the scheduling snapshot.SCHEDULE-STATUS=3.7.PARTSTATon the organizer's copy of the event only, leaving a local attendee's own copy atNEEDS-ACTIONand sending the organizer no reply.MKCALENDAR,MKCOLandPROPPATCHstore the display name, description, time zone and the other per-user properties under the authenticated account rather than the account that owns the collection./api/discoversplits the account name on@without accounting for the%master user separator or the recovery administrator.SETACLandDELETEACLfail to resolve an identifier spelled with uppercase characters.TZIDparameter with no matchingVTIMEZONEcomponent whenever the event was stored without one.AddressBook/get: A new account's default address book is never recorded.Email/getandEmail/parsewithfetchAllBodyValuesreturn body values only for the parts listed intextBodyorhtmlBody, omitting every othertext/*part inbodyStructure.Email/setwrites display names as an RFC 2047 encoded-word wrapped in a quoted-string, which RFC 2047 forbids.Mailbox/set,AddressBook/setandCalendar/setstoreisSubscribedand the other per-user properties under the authenticated account rather than the account named in the request.Principal/queryreturns no results when thenameoremailfilter is spelled with uppercase characters.FileNode/set: File nodes created over JMAP are returned with a<D:href>holding the raw name over WebDAV.maxTotalHitspagination setting is left at the Meilisearch default.failOnTimeoutis disabled.--importalways aborts with the target database already containing data in the key range being imported.catchAllAddresspointing to a mailing list or a sub-addressed mailbox is accepted atRCPT TOand then rejected at local delivery with550 5.5.0 Mailbox not found.is_local_address()andis_local_domain()expression functions do not match an address or domain spelled with uppercase characters.host resolves loopback address, which prevents relaying through a local proxy or tunnel.local_portandlocal_ipreport the address Stalwart is bound to rather than the address the client connected to when the connection arrives through a trusted proxy.totalDeadlineis not enforced on tasks that fail with a specific retry time.maxAttemptsfailures, so a search store that is unavailable or overloaded leaves messages permanently missing from the index.spamtestreturns only1or10(andspamtest :percentonly0or100), so scripts cannot act on intermediate spam scores.MIME_BADis tagged whenever the declaredContent-Typeof an attachment is not byte identical to the type detected from its magic bytes.Check binary attestation here
v0.16.18Compare Source
[0.16.18] - 2026-08-17
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 for more information on how to upgrade from previous versions.Added
inboundReportMaxSizesetting, which bounds the size of a decompressed inbound DMARC or TLS report (default 25MB).cacheSizesetting, which bounds the total memory shared by the block caches of every column family (default 128MB).Changed
Identity/getkeeps identities in sync with the account's e-mail addresses.Fixed
uploadTtlto 1ms triggers panic.CalendarEvent/setdoes not assignorganizerCalendarAddressnor send scheduling messages when an event is created with participants.CalendarEvent/getomitsisOriginwhen it is listed explicitly inproperties.CalendarEventNotification/changesandFileNode/changesreject withcannotCalculateChangesthe state that/getreturned for an account with no change history.CalendarEvent/setandContactCard/setdo not write a vanished tombstone for the previous CalDAV/CardDAV href whencalendarIdsoraddressBookIdsmoves an item between collections.mailto:URI are queued verbatim.REPORTs and JMAPCalendarEvent/queryresults a few years after their first occurrence.MOVEon a folder honors aDepthheader of0or1instead of always moving the whole subtree.Message-IDwrapped in doubled angle brackets.sourcenever match at enqueue.testingmode are enforced, turning any TLS error into a permanent failure.mxpatterns published as U-labels never authorize the MX host they name.application/octet-streamasContent-Typefor encrypted payloads.550 Relay not allowed, unless the domain's primary name happened to be resolved earlier and is still cached.bufferSizesetting was applied to the unused default column family and had no effect.includestatements fail to find system and user global scripts whose name contains uppercase characters.totalDeadlineis measured from the time a task was created instead of its first failed attempt.Check binary attestation here
v0.16.17Compare Source
[0.16.17] - 2026-08-10
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 for more information on how to upgrade from previous versions.Added
UIDBATCHESextension (RFC 10022).UIDONLYextension (RFC 9586).MESSAGELIMITandSAVELIMITextensions (RFC 9738).RangeandIf-Rangeheader support on file downloads (RFC 7233) (#2377).url_originalexpression variable forUrlrules.Changed
jemallocatorcrate withtikv-jemallocator(contributed by @checkraisefold).descriptionas label property.Fixed
FUTURERELEASE HOLDUNTILuses Unix timestamps instead of RFC 3339 date-times.EmailSubmission/queryfiltering onundoStatuscontradictsEmailSubmission/get, reporting heldFUTURERELEASEsubmissions asfinalinstead ofpending.EmailSubmission/getrequests without anidsargument iterates the wrong index.Accept: text/vcardversion negotiation is ignored whenever another parameter such asqorcharsetfollowsversion=.text/calendarpart outside themultipart/alternativeand disposed as an attachment.impersonatepermission never have their ACL grants collected, so shared items are never listed in JMAP sessions, CalDAV/CardDAV discovery or IMAP.COPY/MOVEinto a shared folder fails withNO [ALREADYEXISTS]when the destination account already holds the message, leaving the message in the source mailbox and clients in a retry loop.BODYSTRUCTUREandENVELOPEreturn MIME parameters,Content-Description, subjects and display names as raw UTF-8 even to sessions that never enabledUTF8=ACCEPT.Check binary attestation here
v0.16.16Compare Source
[0.16.16] - 2026-08-02
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 for more information on how to upgrade from previous versions.Added
orcptduring theDATAstage.Changed
accessKeycan now be read from an environment variable or file.Fixed
GETinstead of creating a new task which times out on busy servers.LFline endings, producing a single 4247 octet line that strict SMTP relays reject withline too long.Identity-Alignment: nonewhen a mechanism authenticated successfully but against an identity that is not aligned with theFromdomain.BDATchunks sent without a validMAIL FROMare answered with552 5.3.4 Message too big for systeminstead of503 5.5.1.maxMessageSizeof0rejects every message with552 5.3.4 Message too big for systeminstead of disabling the size limit.[::]), including all defaults, refuse IPv4 connections such as127.0.0.1, sinceIPV6_V6ONLYis enabled by default on Windows.Check binary attestation here
v0.16.15Compare Source
[0.16.15] - 2026-07-26
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 for more information on how to upgrade from previous versions.Added
Changed
Fixed
Email/copyshould returnalreadyExistswhen copying a message to a mailbox that already contains it.Email/copywithonSuccessDestroyOriginaldestroys the copy's creation id instead of the source Email id.CalendarEvent/setdoes not generate auidon create when the client omits it.CalendarEvent/setdoes not refresh theupdatedproperty (iCalendarDTSTAMP) on create or update.EmailSubmission/setrejects valid recipients whose domain is itself a public suffix (e.g.gov.in,co.uk).notRequestwhen a method name contains a JSON-escaped solidus (e.g.Core\/echo)./.well-known/mta-sts.txt.SysApiKeyCreateorSysApiKeyUpdatepermissions can regain its own account's full rights.EC PRIVATE KEY) format, or with a leading byte-order mark.encryptOnAppend.quick-cacheshard, causing constant database rebuilds.#certificate-...) fail to resolve ondefaultCertificateId,defaultAdminRoleIds,listenerIdsandpublicKey.reindexdrops calendar and contact index tasks for accounts with fewer than a full batch of items.--importwhen the target already contains data in the key range being imported.Check binary attestation here
v0.16.14Compare Source
[0.16.14] - 2026-07-20
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 for more information on how to upgrade from previous versions.Added
Changed
Fixed
STOREandEXPUNGEcan execute out of order.isSubscribedon a shared mailbox.Content-Encoding: aes128gcmshould not be base64-encoded but sent as raw bytes.PushSubscription/setrejects the unpadded base64url keys the W3C Push API produces.Email/importdoes not send push notifications for imported messages.CalendarEvent/setsilently ignoresifInState.calendar-queryREPORT returns empty calendar-data for JMAP-created events.queue_namevariable not available in rate limiter expressions.MAILTOcalendar addresses become invalid SMTP recipients.MAIL FROM unauthorized.allowedEndpointsexpression in recovery mode.Check binary attestation here
v0.16.13Compare Source
[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 for more information on how to upgrade from previous versions.Added
Changed
Fixed
imap,smtp,pop3andsieveas valid resource indicators for OAuth access tokens.isEnabledreset to false whenever properties are changed.0001-01-01T00:00:00Z, max9999-12-31T23:59:59Z.dns-updatecrate changelog).1h30m).Receivedheaders to auto-generated messages and detect loops.Check binary attestation here
v0.16.12Compare Source
[0.16.12] - 2026-07-06
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 for more information on how to upgrade from previous versions.Added
Changed
Fixed
bogusas a temporary failures to prevent downgrade attacks.ECDSAprivate key support forSEC1format.redirect_urifor loopback addresses.nameandgroupclaims from userinfo endpoint when missing from the JWT token.usertogrouppanics.UnknownRecipientonly for disabled or expired masked emails.sanitize_emailrejects valid Punycode domains.attributesToSearchOn.calendar-queryREPORT returns invalid HTTP404when no events match the query.EMFILE(too many open files).Check binary attestation here
v0.16.11Compare Source
[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 for more information on how to upgrade from previous versions.Added
AES-256-GCMandChaCha20-Poly1305for S/MIME (#161).allowInvalidCertsoption to allow connecting to S3 endpoints with invalid TLS certificates.Changed
Fixed
Principal/queryreturns broad results when anameoremailfilter cannot be resolved.Check binary attestation here
v0.16.10Compare Source
[0.16.10] - 2026-06-21
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 for more information on how to upgrade from previous versions.Added
redirectRootoption toHttpobject to allow redirecting requests to the root path to a different path (e.g./account).reuseKeyoption to allow reusing private keys in renewals.GETJMAPACCESScommand to discover the JMAP session resource URL (#2736).Changed
Fixed
using.application/jsonin theContent-Typeheader.accountIdargument on requests.notFound/notUpdated/notDestroyed/notCopiedinstead of dropping them.*/set: Unchanged immutableidproperty is rejected on update.*/queryand*/queryChanges: nullrejected asnotRequest`.Email/query:anchorhandling.collapseThreadsis enabled.hasKeyword,allInThreadHaveKeyword, andsomeInThreadHaveKeywordconditions.Email/copy: Take the source message id from the value'sidproperty.Email/set: Bump reference-resolution max_depth from 1 to 2.Email/import: Reject blobs that do not contain valid messages.EmailSubmission/set: returnsendAtandundoStatusin the created response.Mailbox/set: ReturnalreadyExistsinstead ofinvalidPropertieswhen creating a mailbox with an existing name.SearchSnippet/get: incorrect response structure.Thread/changes: emit a container delete when a thread becomes empty.VacationResponse/set: incorrect singleton handling.TLSArecord validation (#2328 - credits to @vdukhovni).includestatements ignore capitalisation of sub-script names (#1643)Check binary attestation here
v0.16.9Compare Source
[0.16.9] - 2026-06-15
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 for more information on how to upgrade from previous versions.Added
Changed
Fixed
*/changesmethods leak ids of non-shared objects (reported by @5ud0er).http_headerfunction.defaultvirtual queue.address-dataare ignored.keepis not specified.Check binary attestation here
v0.16.8Compare Source
[0.16.8] - 2026-06-06
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 for more information on how to upgrade from previous versions.Added
Changed
AES-256-GCM-SIVAEAD format that carries the account name for proxy routing.Fixed
550 Mailbox not found.FileNode/getreturns a stale state string.SieveSystemInterpreter.defaultReturnPathandMtaQueueQuota.matchoptional expressions.dns-update-v0.5.1.Check binary attestation here
v0.16.7Compare Source
[0.16.7] - 2026-05-28
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 for more information on how to upgrade from previous versions.Added
spamtestin trusted Sieve scripts.Changed
Fixed
TXTrecords when updating RRSet.Configuration
📅 Schedule: (in timezone Europe/Vienna)
* 0-3 1 * *)🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.