Linus Rath
780b64461e
fix: close a message in the reader once its scheduled send is cancelled instead of still showing it as scheduled
2026-10-28 10:28:11 +01:00
Linus Rath
ed9fa2de45
feat: offer Undo after a move to another account and in lists that mix accounts, moving the messages back into their folders
2026-10-28 08:06:45 +01:00
Linus Rath
0f9fffe206
Merge branch 'main' into ux/mail
2026-10-28 06:11:18 +01:00
Linus Rath
d61511bdc1
Merge branch 'main' into ux/settings-admin
...
# Conflicts:
# components/settings/address-book-management-settings.tsx
2026-10-28 06:02:59 +01:00
Linus Rath
65d4a66774
Merge branch 'main' into ux/mail
2026-10-28 05:57:23 +01:00
Linus Rath
b7d68191dd
fix: keep accented names in vCard file names, show an imported card's own name, stop starring both name fields, and compose from Contacts without asking for an account
2026-10-28 05:20:37 +01:00
Linus Rath
408a2c90dc
feat: move files and folders with Move to… and a folder picker instead of only dragging
2026-10-28 03:40:10 +01:00
Linus Rath
3d72d426d4
feat: keep deleted files in a Files trash with Restore, Delete permanently and Empty trash
2026-10-28 03:35:46 +01:00
Linus Rath
deb171022d
fix: show the rules again after saving a script the visual builder can read from the raw Sieve editor
2026-10-28 03:27:55 +01:00
Linus Rath
6c5aead20b
feat: undo a delete to Trash, archive, move, spam report or remove from folder from its toast
2026-10-28 03:11:43 +01:00
Linus Rath
b6d986797e
fix: archive only the conversation's messages in the open folder and leave your sent copy in Sent
2026-10-28 02:46:01 +01:00
Linus Rath
066d2e292d
fix: open text, Markdown and PDF previews in the Files demo instead of failing
2026-10-28 02:32:29 +01:00
Linus Rath
ec295ad59f
Merge pull request #1384 from VasilisNtovolos/fix/bulk-delete-partial-results
...
fix: reconcile confirmed permanent bulk deletions
2026-10-27 23:14:11 +01:00
VasilisNtovolos
fb52770b58
test: register source clients in cross-account deletion tests
2026-10-27 15:39:48 +02:00
VasilisNtovolos
ac99c68ef3
fix: reconcile confirmed permanent bulk deletions
2026-10-27 14:51:38 +02:00
Jacob Zeitz and Claude Opus 5.5
1509e8c799
fix: keep one account's tasks out of another's task list
...
The task store was not cleared on an account switch, unlike the calendar,
contacts and the other account-scoped stores, so the next account showed
the previous one's tasks until its own arrived. And a fetch answered after
a later one had started still wrote its list: the outgoing account's
answer could put its tasks back after the switch, and an older answer
could replace a newer one.
clearAllStores now clears the tasks, and each fetch gets a number: only
the latest one's answer or error is kept, and clearing drops the fetches
still under way.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-27 10:31:54 +01:00
Linus Rath
e5f9099658
fix: show new mail of a group or shared account in the unified inbox without a click #1350
2026-10-26 20:01:11 +01:00
Linus Rath
9de2efb722
fix: open a shared or group account's message from its link instead of the own message with the same id #1351
2026-10-26 20:01:11 +01:00
Linus Rath
613451dfef
fix: keep loading older mail when a saved or refreshed list has no total from the server #1364
2026-10-26 20:01:09 +01:00
Linus Rath
87d0bbeb01
fix: show a calendar that appears after the first load instead of leaving it unticked #1372
2026-10-26 20:01:08 +01:00
Linus Rath
2f8b4863ff
Merge pull request #1338 from HOLOEYE-JZ/feat/plugin-search-results
2026-10-26 19:32:56 +01:00
Linus Rath
e99cce05fe
Merge pull request #1370 from maxhaomh/feat/disable-quick-reply
2026-10-26 19:24:49 +01:00
Max Hao
7216089629
feat: add quick reply feature with toggle in settings and tests
2026-10-26 11:40:47 -04:00
Linus Rath
89be5f1e5b
fix: keep every calendar hidden after reload when the user hid them all
2026-10-26 16:13:52 +01:00
Linus Rath
0b917d6262
fix: mark the replied, forwarded or receipted message as answered in its own account, not another account's message with the same id
2026-10-26 16:11:52 +01:00
Linus Rath
ea6d414e5b
fix: show the scheduled badge and its buttons only on the scheduled message, not on another account's message with the same id
2026-10-26 16:11:51 +01:00
Linus Rath
acac3128bc
fix: archive and delete a message from its own account's folders in tag and unified views
2026-10-26 16:11:51 +01:00
Linus Rath
d72bff95f9
fix: stop acting on a message of a signed-out account through the active account
2026-10-26 16:11:51 +01:00
Linus Rath
87701c8c20
fix: keep the calendars shown or hidden in the Pro interface as the user set them
2026-10-26 15:15:58 +01:00
Linus Rath
2e9bb56071
fix: apply a subscribed calendar feed's changes to events it still carries
2026-10-26 15:15:58 +01:00
Linus Rath
abef4224b5
fix: switch to the remaining account on sign-out instead of signing out of all when it was signed in before the page loaded
2026-10-26 14:58:31 +01:00
Linus Rath and Almost-Senseless-Coder
b88397dfd2
fix: renew a background OAuth account with its own token instead of the active account's #989
...
Co-authored-by: Almost-Senseless-Coder <109462027+Almost-Senseless-Coder@users.noreply.github.com >
2026-10-26 14:58:31 +01:00
Linus Rath
e314e56661
fix: keep the own and a group's scheduled mail apart when their ids are the same
2026-10-26 12:26:58 +01:00
Linus Rath
292ccce9ee
fix: delete, move and change groups of another signed-in account's contacts in that account
2026-10-26 12:25:31 +01:00
Linus Rath
4cfdc877d1
fix: keep a contact created in a shared address book from being mistaken for an own contact with the same id
2026-10-26 12:25:31 +01:00
Linus Rath
33c5ca8125
test: check bulk moves against the per-login routing
2026-10-26 12:25:09 +01:00
Linus Rath
72e5af2c52
fix: take a shared folder's Trash from the viewed folder list when bulk deleting
2026-10-26 12:25:09 +01:00
Linus Rath
88b960d605
fix: stop deleting the active account's mail after removing the account whose folder is open
2026-10-26 12:25:08 +01:00
Linus Rath
eeb6ccc4db
fix: create each account's Archive when bulk archiving in the unified inbox
2026-10-26 12:25:08 +01:00
Linus Rath
f9ccc6adf1
fix: clear the refresh token of an OAuth account that could not be restored
2026-10-26 11:33:37 +01:00
Linus Rath
680742c3ef
fix: end a password and TOTP sign-in without remember me with the browser session
2026-10-26 11:33:37 +01:00
Linus Rath
cf2c27157d
Merge branch 'main' into feat/stalwart-1.0
...
# Conflicts:
# components/contacts/contacts-app.tsx
# components/email/__tests__/composer-discard.test.tsx
# components/email/calendar-invitation-banner.tsx
# components/email/email-composer.tsx
# components/mail/mail-app.tsx
# components/pro/pro-compose-tab-body.tsx
# components/pro/pro-email-tab-body.tsx
# components/ui/__tests__/avatar.test.tsx
# components/ui/avatar.tsx
# hooks/use-mailbox-drop.ts
# lib/__tests__/calendar-alerts.test.ts
# lib/__tests__/jmap-calendar-tasks.test.ts
# lib/__tests__/jmap-send-threading.test.ts
# lib/demo/demo-client.ts
# lib/demo/fixtures/calendars.ts
# lib/jmap/client-interface.ts
# lib/jmap/client.ts
# lib/web-push.ts
# stores/__tests__/contact-store.test.ts
# stores/__tests__/email-store-thread-key.test.ts
# stores/calendar-store.ts
# stores/contact-store.ts
# stores/email-store.ts
2026-10-26 10:14:12 +01:00
Jacob Zeitz and Claude Opus 5.5
d02988f431
feat: show the results plugins provide through onProvideSearchResults
...
The hook was called on every search, but nothing showed its entries,
the list waited for it, and an entry's onClick could not cross from the
plugin's sandbox. Its entries are now drawn as a block above the
search's message list, a group per plugin and source.
Each plugin is asked on its own (HookBus.collect) beside the search, so
the list no longer waits, and the answer to a search that was replaced
is dropped. The answer is checked: at most 20 entries, a key and a
title, plain text cut to its limits. A click goes to the plugin that
gave the entry as onAction with surface "search-results", the entry's
key and the query; ExternalSearchResult loses onClick.
Closes #1336
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-25 15:22:33 +01:00
Linus Rath
f7a4087c91
feat: split the Mountain View inbox into Unread and Everything else, as Gmail's unread first
2026-10-25 13:13:46 +01:00
Linus Rath
bf725814ad
Merge pull request #1326 from VasilisNtovolos/fix/bulk-move-client-routing
...
fix: route bulk move by authenticated client
2026-10-24 17:54:44 +02:00
VasilisNtovolos
423c1bb329
fix: route bulk move by authenticated client
2026-10-23 13:16:26 +03:00
VasilisNtovolos
43be0a1bb3
fix: route bulk delete and trash by authenticated client
2026-10-21 14:14:35 +03:00
Linus Rath
7763996698
fix: drop contact and calendar fetches that finish after switching to another account
2026-10-19 01:03:24 +02:00
Linus Rath
bfe98b49a0
fix: act on the clicked row when another account has a message with the same id (GHSA-8x23-qw3w-mhrx)
2026-10-18 17:54:48 +02:00
Linus Rath
4fa22200e7
fix: keep vacation forwarding and plugin vetoes when a tag rename rewrites the filters #854
2026-10-18 15:03:20 +02:00