1036 Commits

Author SHA1 Message Date
mdecimus
2266634f36 WebDAV: Return 304 NOT_MODIFIED on If-None-Match 2026-02-26 19:39:06 +01:00
mdecimus
620ab2a9bc PgSql: Use clean recycling method on connection pool 2026-02-25 14:07:07 +01:00
mdecimus
3840a4e28c Fix tests 2026-02-18 18:21:54 +00:00
Teal Bauer
7da5ba75f7 fix(calendar): include minutes in localized invite templates (#2828) 2026-02-17 09:41:54 +01:00
mdecimus
b2a808911f v0.15.5 2026-02-14 18:55:56 +00:00
mdecimus
9595d86ca8 Spam train task: Skip invalid messages 2026-02-13 18:02:35 +00:00
mdecimus
1b3ac0a6eb Fix tracing indexing when using separate stores 2026-02-05 09:21:34 +01:00
Cameron Little
6594192120 Fix upToId computation queryChanges (#2688)
Currently, stalwart stops processing changes once the value of `upToId` is hit, which means it discards that change. In our UI, this means the last item disappears. This fixes that by moving the check to after the item has been processed.

Also, from the spec (emphasis mine):

> The last (highest-index) id the client currently has cached from the query results.  When there are a large number of results, in a common case, the client may have only downloaded and cached a small subset from the beginning of the results.  If the sort and filter are both only on immutable properties, this allows the server to omit changes after this point in the results, which can significantly increase efficiency.  **If they are not immutable, this argument is ignored.**

I've removed `upToId` from the `mutable` branch.
2026-01-20 19:02:54 +01:00
mdecimus
f42dcc793c JMAP: Include createdIds when the property is present 2026-01-20 07:48:17 -03:00
Cameron Little
3119492852 Respect query arguments in Email/queryChanges (#2687) 2026-01-19 22:34:31 +01:00
mdecimus
a05a047bd3 JMAP/changes: Return the correct container/item change id when there are no changes 2026-01-19 16:00:51 -03:00
mdecimus
3c0312df1e v0.15.4 2026-01-19 08:23:35 -03:00
mdecimus
4b661d5d1f JMAP/changes: Update newState with last changeId if an invalid fromChangeId is provided 2026-01-19 07:53:29 -03:00
n0pw
1fbc7c04bf Migration: fix legacy deserialization (#2674) 2026-01-18 18:38:17 +01:00
mdecimus
6ac4db3a94 Ignore text_classifier test 2026-01-17 12:06:42 -03:00
mdecimus
abb69ecbef Fix stream tokenizer test 2026-01-17 12:01:04 -03:00
mdecimus
22fc4a795d AI API: Include request error details if available 2026-01-16 17:22:09 -03:00
mdecimus
9c33913eae JMAP Calendar: Do not update invalid calendar identities 2026-01-16 17:14:39 -03:00
mdecimus
d1de0ad8b4 Sieve: Update spam status on user scripts 2026-01-15 21:51:22 -03:00
mdecimus
5f5c2f8241 IMAP: Return ALREADYEXISTS code 2026-01-15 10:23:15 -03:00
mdecimus
8ab1a6779a Search: Fix filters not applied when a single message is in the account 2026-01-14 20:25:28 -03:00
mdecimus
887ab71314 IMAP: Do not return quota resources if no quota is set 2026-01-14 20:06:16 -03:00
mdecimus
72858459c6 Internal search: Return all document ids when no filters are provided 2026-01-13 15:43:55 -03:00
mdecimus
4104faf7a4 Internal search: Return all document ids when no filters are provided 2026-01-13 15:43:46 -03:00
mdecimus
f4603f8aaf IMAP: Map header searches to indexed fields 2026-01-10 09:34:18 -03:00
mdecimus
8b09a01c73 v0.15.3 2025-12-29 15:32:39 +01:00
mdecimus
239d093f72 Meilisearch: Return HTTP status error when creating indexes (fixes #2574) 2025-12-29 15:05:32 +01:00
mdecimus
5e9d78567d PostgreSQL: Limit document size to 650kb 2025-12-27 16:55:25 +01:00
mdecimus
45d70065c0 FoundationDB search: Batch large transactions (fixes #2567) 2025-12-26 10:54:28 +01:00
mdecimus
51d962b328 Fix unused variable warning 2025-12-26 10:38:16 +01:00
mdecimus
5764a8580b Spam filter: Fix training sample size checks 2025-12-26 10:22:48 +01:00
Jakub Przybysz
45cf2c2154 feat(i18n): Add Polish locale support (#2480)
* Deploying to main from @ stalwartlabs/stalwart@4919cf55fc 🚀

* Deploying to main from @ stalwartlabs/stalwart@bd27e0d290 🚀

* feat(i18n): Add Polish locale support

---------

Co-authored-by: mdecimus <mdecimus@users.noreply.github.com>
2025-12-25 11:15:49 +01:00
Lo
d854095a51 fix utf7 encoding with emoji (#2564) 2025-12-25 11:12:49 +01:00
mdecimus
74d9ab1659 v0.15.2 2025-12-21 17:30:02 +01:00
mdecimus
90917608e9 ElasticSearch: Implement pagination (#2551) 2025-12-20 19:42:16 +01:00
mdecimus
62941c968c PostgreSQL: Truncate ts_vector to 1MB 2025-12-20 10:21:40 +01:00
mdecimus
3573b38a08 PostreSQL: Truncate large sort fields 2025-12-19 14:52:03 +01:00
mdecimus
d187defb0b Return unsorted search results when the index is not ready (closes #2544) 2025-12-19 12:27:37 +01:00
mdecimus
fd5b11ae34 mySQL: Use MEDIUMTEXT field type for email body and attachments (#2544) 2025-12-19 12:26:50 +01:00
mdecimus
c5d357ca28 IMAP: Fix shared folder double nesting (test suite credits to @ochnygosch) (fixes #2358 closes #2525) 2025-12-18 16:04:06 +01:00
mdecimus
c59cc8c9d3 Lowercase LDAP attribute comparison - credits to @pdf (fixes #2363 closes #2378) 2025-12-18 15:12:41 +01:00
imlonghao
a5dbfd5e6d OAuth: add device authorization endpoint (#2225) 2025-12-18 14:53:56 +01:00
Renato Caldas
c28766bd38 Fix same-host JMAP redirection on non-standard ports (#2271)
Fixes #2221
2025-12-18 14:47:59 +01:00
mdecimus
c06e88cf7d Use latest received header in JMAP Email/import - credits to @apexskier (closes #2374) 2025-12-18 14:44:58 +01:00
mdecimus
80af300540 Fix NO_SPACE_IN_FROM spam tag detection logic (fixes #2372) 2025-12-18 09:36:00 +01:00
mdecimus
43efa37c6a Update spam autolearn behaviour 2025-12-18 09:24:22 +01:00
mdecimus
8c016b4907 v0.15.1 2025-12-17 16:30:05 +01:00
mdecimus
85a5da0563 Sanitize search index values (fixes #2533) 2025-12-17 16:07:26 +01:00
mdecimus
5ff05c6f3e Elasticsearch: Ignore resource_already_exists_exception errors when creating indexes (closes #2535) 2025-12-17 15:00:15 +01:00
mdecimus
7cccd66d16 Migrate 0.13.x data (fixes #2534) 2025-12-17 14:29:06 +01:00