Linus Rath
2b5257bf6b
fix: batch the default search across accounts into shared requests again
2026-10-29 04:32:20 +01:00
Linus Rath
7dc9ee24db
Merge branch 'fx/read' into feat/stalwart-1.0
2026-10-29 04:10:53 +01:00
Linus Rath
64ce86b372
Merge branch 'fx/contacts' into feat/stalwart-1.0
2026-10-29 04:08:31 +01:00
Linus Rath
81061c0d0e
test: check contacts and filters live on Stalwart 0.16 and 1.0
2026-10-29 03:44:42 +01:00
Linus Rath
b7b9c7e076
feat: show the shared tags of group mailboxes, read from their metadata on Stalwart 1.0
2026-10-29 03:43:27 +01:00
Linus Rath
d546d50923
feat: create filter rules from a message's sender, domain or mailing list
2026-10-29 03:41:18 +01:00
Linus Rath
484cac58b7
fix: search Sent, Archive and Drafts from the unified All mail view
2026-10-29 03:30:12 +01:00
Linus Rath
7c94039a7e
Merge branch 'fx/auth' into feat/stalwart-1.0
2026-10-29 03:28:51 +01:00
Linus Rath
32f70c103d
fix: save contacts with calendar or scheduling links and re-import exported vCards by UID
2026-10-29 03:28:09 +01:00
Linus Rath
04ff8728da
Merge branch 'fx/files' into feat/stalwart-1.0
2026-10-29 03:26:03 +01:00
Linus Rath
946304ab76
test: check the Files trash fixes live on Stalwart 0.16 and 1.0
2026-10-29 03:24:43 +01:00
Linus Rath
3bfdf8cef9
fix: give a restored file with a clashing WebDAV name a free name the server accepts
2026-10-29 03:19:43 +01:00
Linus Rath
5ea19a8581
fix: restore a trashed item into its folder when that folder is restored with it
2026-10-29 03:17:48 +01:00
Linus Rath
4a56e825e4
fix: work out where trashed items came from once per listing instead of once per row
2026-10-29 03:13:31 +01:00
Linus Rath
9d1337bf71
Merge branch 'fx/push' into feat/stalwart-1.0
2026-10-29 03:12:56 +01:00
Linus Rath
d57bdfaace
fix: send writes only once after a dropped connection, retry only batches of reads
2026-10-29 03:12:41 +01:00
Linus Rath
01abe1007c
test: check the browser sign-in client, refresh after sign-out and the TOTP code for account changes live on Stalwart 0.16 and 1.0
2026-10-29 03:11:40 +01:00
Linus Rath
d908f95fd7
fix: refuse .Trash as a name at the top of Files, where it would become the trash
2026-10-29 03:10:35 +01:00
Linus Rath
e1e6af3cca
fix: offer to delete permanently when a Files delete can't go to the trash
2026-10-29 03:07:40 +01:00
Linus Rath
caeec2bdab
fix: let Undo of a Files delete do nothing once another account is signed in
2026-10-29 03:00:35 +01:00
Linus Rath
99a4212804
fix: ask for the current code to change the password or turn off two-factor with TOTP on
2026-10-29 03:00:18 +01:00
Linus Rath
a3b8b9fa9f
test: check id reuse, the expiry read-back, the quota-before-address order and the Delete patch on live Stalwart
2026-10-29 03:00:16 +01:00
Linus Rath
323fea7451
fix: undo and restore against the drive as it is now, not the listing from before the delete
2026-10-29 02:57:10 +01:00
Linus Rath
be04fcb179
fix: delete permanently only what is still in the trash, and read the drive again on returning to Files
2026-10-29 02:53:53 +01:00
Linus Rath
28d928f6e9
fix: stop a refresh after sign-out from writing the removed account's tokens back
2026-10-29 02:39:31 +01:00
Linus Rath
867ef20e51
Merge branch 's10/mail' into feat/stalwart-1.0
2026-10-29 02:34:22 +01:00
Linus Rath
7c91418336
feat: keep deleted files in a Files trash with Restore, Delete permanently and Empty trash
2026-10-29 02:30:36 +01:00
Linus Rath
80962e3079
Merge branch 's10/cal' into feat/stalwart-1.0
2026-10-29 02:27:44 +01:00
Linus Rath
3047d5c495
Merge branch 's10/push' into feat/stalwart-1.0
2026-10-29 02:22:54 +01:00
Linus Rath
8893a9e21e
Merge branch 's10/auth' into feat/stalwart-1.0
2026-10-29 02:22:07 +01:00
Linus Rath
111af93a09
docs: say that Stalwart 1.0.0 serves JMAP Metadata in the folder and Sieve property comments
2026-10-29 02:22:05 +01:00
Linus Rath
d76f296587
test: check keywords, submissions, contacts, search, Sieve and identities live on Stalwart 0.16 and 1.0
2026-10-29 02:22:05 +01:00
Linus Rath
547d9e5939
fix: drop the deleted messages from the list when the server refuses others of a bulk delete
2026-10-29 02:20:10 +01:00
Linus Rath
f733a54777
test: check the calendar live on Stalwart 1.0.0 and 0.16 with series, overrides, invitations and shares #89
2026-10-29 02:13:04 +01:00
Linus Rath
b6c0cf1820
docs: say that Stalwart 1.0.0 answers the Metadata properties the calendar list leaves out
2026-10-29 02:12:16 +01:00
Linus Rath
e03a38001d
test: check push subscriptions live on Stalwart 0.16 and 1.0
2026-10-29 02:11:09 +01:00
Linus Rath
2f43adbc07
test: check sign-in, token renewal, sign-out and account security live on Stalwart 0.16 and 1.0
2026-10-29 02:09:21 +01:00
Linus Rath
c6eb02d4cd
fix: say why account security is unavailable when Stalwart 1.0 limits the app's sign-in
2026-10-29 02:07:47 +01:00
Linus Rath
4d545f8f58
fix: show inline images whose part name is a path
2026-10-29 02:06:12 +01:00
Linus Rath
18b8aa096f
fix: send writes in shared folders to the account that holds them and offer the ones its rights allow
2026-10-29 02:01:47 +01:00
Linus Rath
7c775571c9
fix: load the calendar on Stalwart 0.16 when a range starts or ends in the hour the clocks change
2026-10-29 01:58:24 +01:00
Linus Rath
7d8e073587
fix: list files on Stalwart 1.0 when the account holds more nodes than one get allows #1385
2026-10-29 01:54:55 +01:00
Linus Rath
f3e11d4c7c
fix: stop asking an account that shares only mail for its calendars on every load on Stalwart 1.0
2026-10-29 01:54:55 +01:00
Linus Rath
d2bb479ac6
fix: keep inline images of drafts and sent mail on Stalwart 1.0
2026-10-29 01:53:57 +01:00
Linus Rath
174c3fc8fa
fix: create folders and upload files on Stalwart 1.0 and tell its symlinks from folders
2026-10-29 01:53:51 +01:00
Linus Rath
24232bf2e9
test: seed the live Stalwart test's own mail so it runs on any account and on 1.0
2026-10-29 01:38:30 +01:00
Linus Rath
f1db6b488a
Merge branch 'main' into feat/stalwart-1.0
2026-10-29 01:30:03 +01:00
Linus Rath
b4331a9bf9
feat: sign in with an access token
2026-10-25 12:14:30 +01:00
Linus Rath
2618680b21
feat: keep iOS credentials where a notification extension can read them
2026-10-22 22:53:42 +02:00
lucletoffe and Claude Opus 5.5
767d4b9f9f
fix: keep a re-opened draft's attachments on live blobs across saves and sends
...
A draft's attachments and inline images are MIME parts of that draft, and
their blobIds die with the version that holds them. Each save creates the
next version and then destroys the previous one (#849 ), but the composer kept
sending the blobIds it was seeded with. The first save worked, every later
save failed with "blobId ... does not exist on this server", and so did the
send. This is the second half of webmail #849 , which the webmail fixed in
5d2b937a but which was never ported here.
- saveDraftVersion() reads the new version's attachment parts back in the
same request (Email/get on the creation id "#draft"; Stalwart 0.16 does not
resolve a result reference into Email/set "created"). createDraft() keeps
its signature on top of it.
- The composer maps each held blobId to the matching part of the latest
version (inline by Content-ID, the rest by name and size) and sends that.
Uploads are re-pointed too, since an unreferenced upload expires. The map
lives in a ref, so the dirty snapshot does not change on every save.
- Opening a draft with inline images no longer looks like an edit. The
hydration swapped the editor body for its normalised DOM HTML but compared
it with the raw server HTML, so the autosave replaced the draft about two
seconds after it opened. That destroyed the opened version, and a plain
"open, then Send" failed with the same blobNotFound.
Tests: unit tests for the matching and rebasing, a fake-server test that
reproduces the failure without the rebase, and an opt-in live Stalwart test
(verified against Stalwart 0.16.22).
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com >
2026-10-14 08:47:21 +02:00