Commit Graph
2708 Commits
Author SHA1 Message Date
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
Linus Rath 45840e722a Merge pull request #854 from dev-hive-kazniisa/fix/keyword-rename-sieve-sync
fix: renaming a tag leaves filter rules tagging under the old id
2026-10-18 15:02:15 +02:00
Linus Rath 99cf78a280 fix: keep shared folders from other servers when they reuse an account id #1108 2026-10-18 14:58:53 +02:00
Linus Rath 4f9271e25b Merge pull request #1108 from hildebrandttk/fix/cross-view-shared-folder-dedup
fix: list a shared folder reachable through two logins only once in c…
2026-10-18 14:57:30 +02:00
Linus Rath b23735fb6b feat: translate the strings added since the Estonian locale was made 2026-10-18 14:41:32 +02:00
Linus Rath eb100c6aac fix: draw the Estonian flag without a shared clip path id 2026-10-18 14:39:59 +02:00
Linus Rath dca10ba9aa feat: translate the company directory into Estonian 2026-10-18 14:39:59 +02:00
Linus Rath f3482ce020 fix: remember restored sign-ins only when the restoring account is remembered 2026-10-18 14:39:59 +02:00
Linus Rath 1e992e6c7f fix: check plugin dropdown messages before the host draws them 2026-10-18 14:39:59 +02:00
Linus Rath be06956398 test: cover the From pick when replying to another connected account 2026-10-18 14:39:59 +02:00
Linus Rath 7573471544 fix: keep plugins from reading mail of other connected logins #1273 2026-10-18 14:39:58 +02:00
Linus Rath 811e175cd0 fix: tell today's mail by the time zone setting in the sender line #1259 2026-10-18 14:39:58 +02:00
Linus Rath 610df64463 fix: keep the whole folder after a restart when a category tab was open #1264 2026-10-18 14:39:27 +02:00
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