From 3c0312df1e625bfd400903fd680fc618fc6ac9ed Mon Sep 17 00:00:00 2001 From: mdecimus <11444311+mdecimus@users.noreply.github.com> Date: Mon, 19 Jan 2026 08:23:35 -0300 Subject: [PATCH] v0.15.4 --- CHANGELOG.md | 20 ++++++++++ Cargo.lock | 60 ++++++++++++++--------------- crates/cli/Cargo.toml | 2 +- crates/common/Cargo.toml | 2 +- crates/dav-proto/Cargo.toml | 2 +- crates/dav/Cargo.toml | 2 +- crates/directory/Cargo.toml | 2 +- crates/email/Cargo.toml | 2 +- crates/groupware/Cargo.toml | 2 +- crates/http-proto/Cargo.toml | 2 +- crates/http/Cargo.toml | 2 +- crates/imap-proto/Cargo.toml | 2 +- crates/imap/Cargo.toml | 2 +- crates/jmap-proto/Cargo.toml | 2 +- crates/jmap/Cargo.toml | 2 +- crates/main/Cargo.toml | 2 +- crates/managesieve/Cargo.toml | 2 +- crates/migration/Cargo.toml | 2 +- crates/nlp/Cargo.toml | 2 +- crates/pop3/Cargo.toml | 2 +- crates/services/Cargo.toml | 2 +- crates/smtp/Cargo.toml | 2 +- crates/spam-filter/Cargo.toml | 2 +- crates/store/Cargo.toml | 2 +- crates/trc/Cargo.toml | 2 +- crates/trc/event-macro/Cargo.toml | 2 +- crates/types/Cargo.toml | 2 +- crates/utils/Cargo.toml | 2 +- crates/utils/proc-macros/Cargo.toml | 2 +- tests/Cargo.toml | 2 +- 30 files changed, 78 insertions(+), 58 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d1ebcf1c..e3e16bf2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,26 @@ All notable changes to this project will be documented in this file. This project adheres to [Semantic Versioning](http://semver.org/). +## [0.15.4] - 2026-01-19 + +If you are upgrading from v0.14.x and below, this version includes **multiple breaking changes**. Please read the [upgrading documentation](https://github.com/stalwartlabs/stalwart/blob/main/UPGRADING/v0_15.md) for more information on how to upgrade from previous versions. +If you are upgrading from v0.15.x, replace the binary and update the webadmin. + +## Added +- IMAP: Map `HEADER SUBJECT/FROM/TO` searches to `SUBJECT/FROM/TO` queries. +- Sieve: Update spam status on user scripts. + +## Changed + +## Fixed +- Search: Return all document ids when no filters are provided. +- Search: Filters not applied when a single message is in the account. +- IMAP: Return `ALREADYEXISTS` code when creating existing mailboxes. +- IMAP: Do not return quota resources if no quota is set. +- JMAP/changes: Update `newState` with last changeId if an invalid fromChangeId is provided. +- JMAP/CalendarIdentity: Do not update invalid calendar identities. +- AI API: Include request error details if available. + ## [0.15.3] - 2025-12-29 If you are upgrading from v0.14.x and below, this version includes **multiple breaking changes**. Please read the [upgrading documentation](https://github.com/stalwartlabs/stalwart/blob/main/UPGRADING/v0_15.md) for more information on how to upgrade from previous versions. diff --git a/Cargo.lock b/Cargo.lock index 55d3ae3b..7497e4a6 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1150,7 +1150,7 @@ dependencies = [ [[package]] name = "common" -version = "0.15.3" +version = "0.15.4" dependencies = [ "aes-gcm-siv", "ahash", @@ -1640,7 +1640,7 @@ checksum = "2a2330da5de22e8a3cb63252ce2abb30116bf5265e89c0e01bc17015ce30a476" [[package]] name = "dav" -version = "0.15.3" +version = "0.15.4" dependencies = [ "calcard 0.3.2", "chrono", @@ -1662,7 +1662,7 @@ dependencies = [ [[package]] name = "dav-proto" -version = "0.15.3" +version = "0.15.4" dependencies = [ "calcard 0.3.2", "chrono", @@ -1828,7 +1828,7 @@ dependencies = [ [[package]] name = "directory" -version = "0.15.3" +version = "0.15.4" dependencies = [ "ahash", "argon2", @@ -2081,7 +2081,7 @@ dependencies = [ [[package]] name = "email" -version = "0.15.3" +version = "0.15.4" dependencies = [ "aes", "aes-gcm", @@ -2201,7 +2201,7 @@ dependencies = [ [[package]] name = "event_macro" -version = "0.15.3" +version = "0.15.4" dependencies = [ "proc-macro2", "quote", @@ -2689,7 +2689,7 @@ dependencies = [ [[package]] name = "groupware" -version = "0.15.3" +version = "0.15.4" dependencies = [ "ahash", "calcard 0.3.2", @@ -2994,7 +2994,7 @@ dependencies = [ [[package]] name = "http" -version = "0.15.3" +version = "0.15.4" dependencies = [ "async-stream", "base64 0.22.1", @@ -3104,7 +3104,7 @@ dependencies = [ [[package]] name = "http_proto" -version = "0.15.3" +version = "0.15.4" dependencies = [ "common", "compact_str", @@ -3405,7 +3405,7 @@ checksum = "09e54e57b4c48b40f7aec75635392b12b3421fa26fe8b4332e63138ed278459c" [[package]] name = "imap" -version = "0.15.3" +version = "0.15.4" dependencies = [ "ahash", "common", @@ -3432,7 +3432,7 @@ dependencies = [ [[package]] name = "imap_proto" -version = "0.15.3" +version = "0.15.4" dependencies = [ "ahash", "chrono", @@ -3693,7 +3693,7 @@ dependencies = [ [[package]] name = "jmap" -version = "0.15.3" +version = "0.15.4" dependencies = [ "aes-gcm", "aes-gcm-siv", @@ -3803,7 +3803,7 @@ dependencies = [ [[package]] name = "jmap_proto" -version = "0.15.3" +version = "0.15.4" dependencies = [ "ahash", "calcard 0.3.2", @@ -4263,7 +4263,7 @@ dependencies = [ [[package]] name = "managesieve" -version = "0.15.3" +version = "0.15.4" dependencies = [ "ahash", "common", @@ -4372,7 +4372,7 @@ checksum = "c797b9d6bb23aab2fc369c65f871be49214f5c759af65bde26ffaaa2b646b492" [[package]] name = "migration" -version = "0.15.3" +version = "0.15.4" dependencies = [ "base64 0.22.1", "bincode 1.3.3", @@ -4614,7 +4614,7 @@ dependencies = [ [[package]] name = "nlp" -version = "0.15.3" +version = "0.15.4" dependencies = [ "ahash", "bincode 1.3.3", @@ -5357,7 +5357,7 @@ dependencies = [ [[package]] name = "pop3" -version = "0.15.3" +version = "0.15.4" dependencies = [ "common", "directory", @@ -5556,7 +5556,7 @@ dependencies = [ [[package]] name = "proc_macros" -version = "0.15.3" +version = "0.15.4" dependencies = [ "proc-macro2", "quote", @@ -7104,7 +7104,7 @@ dependencies = [ [[package]] name = "services" -version = "0.15.3" +version = "0.15.4" dependencies = [ "aes-gcm", "aes-gcm-siv", @@ -7321,7 +7321,7 @@ checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" [[package]] name = "smtp" -version = "0.15.3" +version = "0.15.4" dependencies = [ "ahash", "blake3", @@ -7423,7 +7423,7 @@ dependencies = [ [[package]] name = "spam-filter" -version = "0.15.3" +version = "0.15.4" dependencies = [ "common", "compact_str", @@ -7521,14 +7521,14 @@ checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" [[package]] name = "stalwart" -version = "0.15.3" +version = "0.15.4" dependencies = [ "common", "dav", "directory", "email", "groupware", - "http 0.15.3", + "http 0.15.4", "imap", "jemallocator", "jmap", @@ -7547,7 +7547,7 @@ dependencies = [ [[package]] name = "stalwart-cli" -version = "0.15.3" +version = "0.15.4" dependencies = [ "clap", "console", @@ -7578,7 +7578,7 @@ checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" [[package]] name = "store" -version = "0.15.3" +version = "0.15.4" dependencies = [ "ahash", "arc-swap", @@ -7742,7 +7742,7 @@ dependencies = [ [[package]] name = "tests" -version = "0.15.3" +version = "0.15.4" dependencies = [ "ahash", "async-trait", @@ -7763,7 +7763,7 @@ dependencies = [ "form_urlencoded", "futures", "groupware", - "http 0.15.3", + "http 0.15.4", "http-body-util", "http_proto", "hyper 1.8.1", @@ -8298,7 +8298,7 @@ dependencies = [ [[package]] name = "trc" -version = "0.15.3" +version = "0.15.4" dependencies = [ "ahash", "base64 0.22.1", @@ -8385,7 +8385,7 @@ checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb" [[package]] name = "types" -version = "0.15.3" +version = "0.15.4" dependencies = [ "blake3", "compact_str", @@ -8582,7 +8582,7 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "utils" -version = "0.15.3" +version = "0.15.4" dependencies = [ "ahash", "base64 0.22.1", diff --git a/crates/cli/Cargo.toml b/crates/cli/Cargo.toml index e134b27f..76e96f04 100644 --- a/crates/cli/Cargo.toml +++ b/crates/cli/Cargo.toml @@ -5,7 +5,7 @@ authors = ["Stalwart Labs LLC "] license = "AGPL-3.0-only OR LicenseRef-SEL" repository = "https://github.com/stalwartlabs/cli" homepage = "https://github.com/stalwartlabs/cli" -version = "0.15.3" +version = "0.15.4" edition = "2024" readme = "README.md" diff --git a/crates/common/Cargo.toml b/crates/common/Cargo.toml index 25347ac3..0f12fc28 100644 --- a/crates/common/Cargo.toml +++ b/crates/common/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "common" -version = "0.15.3" +version = "0.15.4" edition = "2024" build = "build.rs" diff --git a/crates/dav-proto/Cargo.toml b/crates/dav-proto/Cargo.toml index fab8fdc3..f31be053 100644 --- a/crates/dav-proto/Cargo.toml +++ b/crates/dav-proto/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "dav-proto" -version = "0.15.3" +version = "0.15.4" edition = "2024" [dependencies] diff --git a/crates/dav/Cargo.toml b/crates/dav/Cargo.toml index e2379f3b..3d6351e9 100644 --- a/crates/dav/Cargo.toml +++ b/crates/dav/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "dav" -version = "0.15.3" +version = "0.15.4" edition = "2024" [dependencies] diff --git a/crates/directory/Cargo.toml b/crates/directory/Cargo.toml index 86a2bc3b..22741626 100644 --- a/crates/directory/Cargo.toml +++ b/crates/directory/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "directory" -version = "0.15.3" +version = "0.15.4" edition = "2024" [dependencies] diff --git a/crates/email/Cargo.toml b/crates/email/Cargo.toml index abf808c1..60b16146 100644 --- a/crates/email/Cargo.toml +++ b/crates/email/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "email" -version = "0.15.3" +version = "0.15.4" edition = "2024" [dependencies] diff --git a/crates/groupware/Cargo.toml b/crates/groupware/Cargo.toml index 5dd52903..5cd2f35e 100644 --- a/crates/groupware/Cargo.toml +++ b/crates/groupware/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "groupware" -version = "0.15.3" +version = "0.15.4" edition = "2024" [dependencies] diff --git a/crates/http-proto/Cargo.toml b/crates/http-proto/Cargo.toml index 5e88cffe..1fd9638f 100644 --- a/crates/http-proto/Cargo.toml +++ b/crates/http-proto/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "http_proto" -version = "0.15.3" +version = "0.15.4" edition = "2024" [dependencies] diff --git a/crates/http/Cargo.toml b/crates/http/Cargo.toml index 3a7993d0..a6a45a7d 100644 --- a/crates/http/Cargo.toml +++ b/crates/http/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "http" -version = "0.15.3" +version = "0.15.4" edition = "2024" [dependencies] diff --git a/crates/imap-proto/Cargo.toml b/crates/imap-proto/Cargo.toml index 0d2086d3..ca11df34 100644 --- a/crates/imap-proto/Cargo.toml +++ b/crates/imap-proto/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "imap_proto" -version = "0.15.3" +version = "0.15.4" edition = "2024" [dependencies] diff --git a/crates/imap/Cargo.toml b/crates/imap/Cargo.toml index 802cd3f0..9d832b26 100644 --- a/crates/imap/Cargo.toml +++ b/crates/imap/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "imap" -version = "0.15.3" +version = "0.15.4" edition = "2024" [dependencies] diff --git a/crates/jmap-proto/Cargo.toml b/crates/jmap-proto/Cargo.toml index 4f19b17b..ff84c07d 100644 --- a/crates/jmap-proto/Cargo.toml +++ b/crates/jmap-proto/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "jmap_proto" -version = "0.15.3" +version = "0.15.4" edition = "2024" [dependencies] diff --git a/crates/jmap/Cargo.toml b/crates/jmap/Cargo.toml index 36b315be..73c13d7f 100644 --- a/crates/jmap/Cargo.toml +++ b/crates/jmap/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "jmap" -version = "0.15.3" +version = "0.15.4" edition = "2024" [dependencies] diff --git a/crates/main/Cargo.toml b/crates/main/Cargo.toml index 0836ce43..0e395512 100644 --- a/crates/main/Cargo.toml +++ b/crates/main/Cargo.toml @@ -7,7 +7,7 @@ homepage = "https://stalw.art" keywords = ["imap", "jmap", "smtp", "email", "mail", "webdav", "server"] categories = ["email"] license = "AGPL-3.0-only OR LicenseRef-SEL" -version = "0.15.3" +version = "0.15.4" edition = "2024" [[bin]] diff --git a/crates/managesieve/Cargo.toml b/crates/managesieve/Cargo.toml index 45d37bf6..7c8f35ec 100644 --- a/crates/managesieve/Cargo.toml +++ b/crates/managesieve/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "managesieve" -version = "0.15.3" +version = "0.15.4" edition = "2024" [dependencies] diff --git a/crates/migration/Cargo.toml b/crates/migration/Cargo.toml index f5eca836..d215fe21 100644 --- a/crates/migration/Cargo.toml +++ b/crates/migration/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "migration" -version = "0.15.3" +version = "0.15.4" edition = "2024" [dependencies] diff --git a/crates/nlp/Cargo.toml b/crates/nlp/Cargo.toml index 99282875..30e498e0 100644 --- a/crates/nlp/Cargo.toml +++ b/crates/nlp/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "nlp" -version = "0.15.3" +version = "0.15.4" edition = "2024" [dependencies] diff --git a/crates/pop3/Cargo.toml b/crates/pop3/Cargo.toml index 0f7be5f7..3e73006e 100644 --- a/crates/pop3/Cargo.toml +++ b/crates/pop3/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "pop3" -version = "0.15.3" +version = "0.15.4" edition = "2024" [dependencies] diff --git a/crates/services/Cargo.toml b/crates/services/Cargo.toml index 12a511ae..3a9bb173 100644 --- a/crates/services/Cargo.toml +++ b/crates/services/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "services" -version = "0.15.3" +version = "0.15.4" edition = "2024" [dependencies] diff --git a/crates/smtp/Cargo.toml b/crates/smtp/Cargo.toml index 381b76e9..da978745 100644 --- a/crates/smtp/Cargo.toml +++ b/crates/smtp/Cargo.toml @@ -7,7 +7,7 @@ homepage = "https://stalw.art/smtp" keywords = ["smtp", "email", "mail", "server"] categories = ["email"] license = "AGPL-3.0-only OR LicenseRef-SEL" -version = "0.15.3" +version = "0.15.4" edition = "2024" [dependencies] diff --git a/crates/spam-filter/Cargo.toml b/crates/spam-filter/Cargo.toml index c43db0d7..31ceadac 100644 --- a/crates/spam-filter/Cargo.toml +++ b/crates/spam-filter/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "spam-filter" -version = "0.15.3" +version = "0.15.4" edition = "2024" [dependencies] diff --git a/crates/store/Cargo.toml b/crates/store/Cargo.toml index 6d196d37..79c05d1c 100644 --- a/crates/store/Cargo.toml +++ b/crates/store/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "store" -version = "0.15.3" +version = "0.15.4" edition = "2024" [dependencies] diff --git a/crates/trc/Cargo.toml b/crates/trc/Cargo.toml index cc22f52b..9cea2044 100644 --- a/crates/trc/Cargo.toml +++ b/crates/trc/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "trc" -version = "0.15.3" +version = "0.15.4" edition = "2024" [dependencies] diff --git a/crates/trc/event-macro/Cargo.toml b/crates/trc/event-macro/Cargo.toml index 6e2c33cd..f0fe77a2 100644 --- a/crates/trc/event-macro/Cargo.toml +++ b/crates/trc/event-macro/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "event_macro" -version = "0.15.3" +version = "0.15.4" edition = "2024" [lib] diff --git a/crates/types/Cargo.toml b/crates/types/Cargo.toml index 26fa3317..a1d353e9 100644 --- a/crates/types/Cargo.toml +++ b/crates/types/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "types" -version = "0.15.3" +version = "0.15.4" edition = "2024" [dependencies] diff --git a/crates/utils/Cargo.toml b/crates/utils/Cargo.toml index 23c6cd9f..42d198ff 100644 --- a/crates/utils/Cargo.toml +++ b/crates/utils/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "utils" -version = "0.15.3" +version = "0.15.4" edition = "2024" [dependencies] diff --git a/crates/utils/proc-macros/Cargo.toml b/crates/utils/proc-macros/Cargo.toml index dc66b07a..91003a3c 100644 --- a/crates/utils/proc-macros/Cargo.toml +++ b/crates/utils/proc-macros/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "proc_macros" -version = "0.15.3" +version = "0.15.4" edition = "2024" [lib] diff --git a/tests/Cargo.toml b/tests/Cargo.toml index 39381f58..12c1b715 100644 --- a/tests/Cargo.toml +++ b/tests/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tests" -version = "0.15.3" +version = "0.15.4" edition = "2024" [features]