Commit Graph
2693 Commits
Author SHA1 Message Date
Linus Rath 2f7873e756 test: update the inline image reply test for the current composer mocks 2026-10-18 14:39:07 +02:00
Linus Rath 402188a4d5 Merge pull request #1125 from guisea/fix/inline-attachments-reply-forward
fix(email-composer): normalize bracketed content-ids for inline reply/forward images
2026-10-18 14:38:13 +02:00
Linus Rath 1ff7db0827 Merge pull request #1254 from raudraido/feat/add-estonian-locale
feat: add Estonian (et) locale
2026-10-18 14:34:37 +02:00
Linus Rath 100da43991 Merge pull request #1247 from lucamzanon/feat/account-archive-passwords
feat: optionally keep mailbox passwords in the account list backup
2026-10-18 14:34:31 +02:00
Linus Rath 5aba2a92c5 Merge pull request #1251 from tobiasge/feat/plugin-ui-kit-combobox
feat(plugins): add Combobox component to UI kit with host floating dropdown portal
2026-10-18 14:34:26 +02:00
Linus Rath 7dd8e93949 Merge pull request #1270 from vixh/fix/multi-account-self-reply
fix: reply to a message from another connected account goes to that account
2026-10-18 14:34:22 +02:00
Linus Rath 24e7e738bd Merge pull request #1274 from alyyousuf7/fix/plugin-email-get-shared-accounts
fix: let api.email.get read a listed message of a shared account
2026-10-18 14:34:18 +02:00
Linus Rath 1b5da75a47 Merge pull request #1262 from balabommablock-cpu/fix/relative-ago-calendar-days
fix: count calendar days in the time zone for the relative date
2026-10-18 14:34:14 +02:00
Linus Rath 0cc2c176f6 Merge pull request #1265 from alyyousuf7/fix/refresh-category-tab-filter
fix: keep the category tab filter when the mailbox refreshes
2026-10-18 14:34:10 +02:00
Linus Rath 84ce0ceb4f Merge pull request #1268 from sanitz/fix/recurring-event-refetch
fix(calendar): refetch visible range after creating recurring event
2026-10-18 14:34:06 +02:00
Linus Rath 1c8e7025e6 Merge pull request #1178 from VasilisNtovolos/fix/mixed-account-bulk-archive
fix: route bulk archive by owning account
2026-10-18 14:33:41 +02:00
Linus Rath 79d8287dfd Merge pull request #1256 from sanitz/fix/task-due-localdatetime
fix(tasks): send an all-day task's due and start as a LocalDateTime
2026-10-18 14:30:08 +02:00
Linus Rath 58eff0e879 Merge pull request #1258 from HOLOEYE-JZ/feat/archive-feature-gate
feat: admin policy gate to turn off archiving #1257
2026-10-18 14:29:27 +02:00
Linus Rath 5411a9ef50 Merge pull request #1272 from Peterka35/fix/mark-as-read-delay-thread-expand
fix: mark shared conversations read on the owner account, and follow markAsReadDelay when expanding a conversation
2026-10-18 14:21:50 +02:00
Linus Rath 710e32cc10 fix: ignore Nextcloud filter markers inside rule text 2026-10-18 14:19:07 +02:00
Linus RathandFrench-Asgeir 7163a5dcc1 fix: translate contact field types and more French strings
Co-authored-by: French-Asgeir <109287366+French-Asgeir@users.noreply.github.com>
2026-10-18 14:19:07 +02:00
Linus Rath 8e7245b26c feat: let the theme policy set and lock the color mode #1280 2026-10-18 13:46:49 +02:00
Linus Rath 4adbad25f6 feat: end the provider session through a configured logout URL #1279 2026-10-18 13:46:48 +02:00
Linus Rath 89001ededa fix: open the reader's Move, Tag and Rules flyouts on the side with room #1261 2026-10-18 13:46:48 +02:00
Linus Rath 86d6c78ce7 fix: keep a plugin slot's callbacks working when its props change while it loads #1266 2026-10-18 13:46:47 +02:00
Linus Rath a11a89d689 fix: skip vacation filter rules on shared accounts without sieve #1263 2026-10-18 13:46:47 +02:00
Linus Rath b811ad93cb fix: use the theme's sans font for the whole app #1278 2026-10-18 13:46:47 +02:00
Ali Yousuf 6fe9f8f7f1 fix: let api.email.get read a listed message of a shared account
doEmailGet asked the signed-in account for every id, so a message in a
folder shared from another account came back as null even though it was
in the list. A message in the loaded list is now read from the account
that owns it, through resolveEmailBlobContext like attachment downloads.
getAttachment and getRaw keep reading from the signed-in account only.

Fixes #1273
2026-10-17 18:41:31 -04:00
Peterka35 bbc3c2123e fix: follow markAsReadDelay when expanding a conversation or opening a Pro folder row
Expanding a conversation in the message list (row click, expand chevron,
or the `x` shortcut) and clicking a row in a Pro folder tab marked the
messages read straight away. They ignored "Mark as read: Never" and any
delay, which the reading pane and the conversation view follow.

Route them through one helper, scheduleAutoMarkAsRead: -1 never marks,
0 marks at once, any other value marks after that many milliseconds and
returns a cancel function.

- New store action autoMarkExpandedThreadAsRead keeps one pending timer
  per thread key. Collapsing the thread, or collapsing all threads, drops
  it. Both expansion paths (EmailList and the `x` handler in MailApp) use
  it.
- MailApp's handleEmailSelect drops the pending mark of every expanded
  thread other than the one the newly opened message belongs to, through
  cancelAutoMarkThreadAsRead. Moving on with `j`/`k` or a click no longer
  lets the delayed mark land on a conversation the user has left. The
  thread stays expanded.
- ProFolderTabBody schedules the row mark through the helper and drops a
  pending one when another row is opened or the tab unmounts.
2026-10-17 21:01:34 +02:00
Peterka35 2c6914ae62 fix: pass the owning accountId when marking a thread read
markThreadAsRead resolved each message through resolveEmailActionContext
but kept only the client and dropped the accountId, so batchMarkAsRead
always wrote to the reaching client's own account.

That hit two cases where the client and the owning account differ:

- a shared mailbox opened directly from the "Shared" sidebar section,
  whose owner comes from the selected shared folder;
- a shared source in the unified view, whose messages are stamped with
  sourceAccountId but reached through the login client.

The Email/set then went to the login's own account. The shared messages
stayed unread, and since JMAP ids are only unique within an account, a
message in the user's own account with the same id could be marked read
instead.

Group the ids by client and owning account, and pass the accountId to
batchMarkAsRead, as the batch and single-message paths already do.
2026-10-17 21:01:33 +02:00
Viktor Shulika MacBook Air M5andClaude Opus 5.5 76dbaf532a fix: reply to a message from another connected account goes to that account
With several accounts connected, the composer treated every account's
identities as "own" when deciding whether a message was self-sent (#703).
A message that account B sent to account A therefore looked self-sent
when replying from A, so the reply was addressed to the original To -
account A itself - and From was switched to B.

Self-sent now means "sent by the account holding the original":
buildReplyRecipients takes an optional selfSentEmails list (defaulting to
ownEmails, so single-account behaviour is unchanged), and the composer
passes the source account's identities there and to the From selection.
Reply-all still drops every connected account's addresses.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17 20:31:25 +02:00
Linus Rath 107d731af7 feat: remove a message from just the open folder when it is in several #615 2026-10-17 19:18:25 +02:00
Linus Rath 1ad1e31781 feat: set message priority in the composer #970 2026-10-17 19:18:23 +02:00
Linus Rath edf675b2f4 feat: list your own folders in a separate section of the sidebar #1205 2026-10-17 19:18:22 +02:00
Linus Rath 8583c9efef feat: hide the version from the connector probe when the login page hides it #896 2026-10-17 19:18:21 +02:00
Linus Rath 03031fcb13 feat: jump to the next unread message with n #514 2026-10-17 19:18:20 +02:00
Linus Rath b611d9c028 feat: refresh sender icons that changed on the sender's website #960 2026-10-17 19:18:18 +02:00
Linus Rath 481665b435 test: pick the role dropdown in the folder order test next to the counter menus #982 2026-10-17 19:18:17 +02:00
Linus Rath 1c3cc35a7c feat: set the counter per folder, e.g. keep the Drafts count with totals off #982 2026-10-17 19:18:16 +02:00
Linus Rath 3fd93df4b2 feat: extend the message selection with shift+arrow keys #992 2026-10-17 19:18:15 +02:00
Linus Rath b76624466f feat: show the folder on search results from all folders #1172 2026-10-17 19:18:11 +02:00
Linus Rath 5d5f099cff feat: tick a row by clicking anywhere on it while selecting #1014 2026-10-17 19:18:06 +02:00
Linus Rath f47fe778d0 feat: add a setting to hide the account dot in the unified view #912 2026-10-17 19:18:01 +02:00
Linus Rath 7d882be734 fix: delete only the clicked mail when another account has a message with the same id #857 2026-10-17 19:18:00 +02:00
Linus Rath f8ef54dbea fix: enable push notifications when another user shares a folder with you #1050 2026-10-17 19:17:59 +02:00
Linus Rath cbf917372c fix: show the mail's own date in the list and keep it on .eml import #891 2026-10-17 19:17:58 +02:00
Linus Rath 4a69a7df8a test: darken cells coloured with bgcolor in dark mode #693 2026-10-17 19:17:57 +02:00
Linus Rath ce60099523 fix: decrypt PGP and S/MIME messages inside conversations #902 2026-10-17 19:17:56 +02:00
Linus Rath b646ff0dc1 fix: preview attachments in the installed app instead of opening a blank window #865 2026-10-17 19:17:55 +02:00
Linus Rath 5515297857 fix: keep blank lines in sent mail instead of collapsing them #1015 2026-10-17 19:17:54 +02:00
Linus Rath 0fb4fc53cf test: cover keeping typed text when a template goes into a reply #911 2026-10-17 19:17:53 +02:00
Linus Rath aa112b3397 fix: sign replies whose From is picked after the composer opens #842 2026-10-17 19:17:53 +02:00
Linus Rath 89ffb7270a fix: stop sending a contact group whose member is not an address #795 2026-10-17 19:17:52 +02:00
Linus Rath bfe95e0ebd fix: keep your own address out of reply-all before your identities have loaded #803 2026-10-17 19:17:51 +02:00
Linus Rath 49beaef852 fix: show zero-length events ending at their start instead of midnight #837 2026-10-17 19:17:50 +02:00