Commit Graph
356 Commits
Author SHA1 Message Date
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 ZeitzandClaude 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 RathandAlmost-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 ZeitzandClaude 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