Linus Rath
9d529ca98f
feat: reply from the address a message was delivered to when to, cc and bcc have no match #1353
2026-10-31 16:55:10 +01:00
Linus Rath
e68036e7b0
fix: line up the select-all checkbox with the row checkboxes in mountain view #1473
2026-10-31 16:31:18 +01:00
Linus Rath
e128515156
fix: show the real total of the unified inbox in mountain view instead of the loaded count #1471
2026-10-31 16:31:17 +01:00
Linus Rath
663a875972
fix: give the folders their own heading under the unified mailbox in mountain view #1470
2026-10-31 16:31:16 +01:00
Linus Rath
b8223a4492
Merge pull request #1466 from HOLOEYE-JZ/feat/plugin-open-email
...
feat(plugins): api.ui.openEmail opens a message in the reader
2026-10-31 16:25:05 +01:00
Linus Rath
c09be1cdd3
Merge pull request #1456 from HOLOEYE-JZ/feat/plugin-frame-activity
...
feat(plugins): input in a plugin frame counts as activity for the idle sign-out
2026-10-31 16:25:03 +01:00
Linus Rath
e5ed50dc92
Merge pull request #1467 from HOLOEYE-JZ/feat/plugin-hooks-account-and-composer
...
feat(plugins): star and after-send hooks name the mail's account
2026-10-31 16:25:00 +01:00
Linus Rath
258dc5e54f
Merge pull request #1454 from VasilisNtovolos/fix/save-draft-pending-attachments
...
fix: wait for attachment uploads before saving and closing drafts
2026-10-31 16:24:58 +01:00
Linus Rath
2ceeef3fb9
Merge pull request #1464 from VasilisNtovolos/fix/xhr-upload-inactivity-timeout
...
fix: time out stalled XHR uploads after inactivity
2026-10-31 16:24:56 +01:00
Linus Rath
608d23bc14
Merge pull request #1446 from robertdoneill/fix/command-palette-focus-outline
...
fix: keep the command palette field's focus outline inside the dialog
2026-10-31 16:24:50 +01:00
Linus Rath
341b84fe19
Merge pull request #1448 from vietnamvps/add-vietnamese
...
feat(i18n): add Vietnamese language support
2026-10-31 16:24:47 +01:00
Linus Rath
bc6fee7556
feat: let timed events show as coloured text or a dot in the month view #1449
2026-10-31 16:23:00 +01:00
Linus Rath
d3fecae85f
feat: hide the contacts directory when the server refuses it, and let users or admins turn it off #1457
2026-10-31 16:22:24 +01:00
Linus Rath
6c5a727a59
fix: let an identity be saved without a display name #1462
2026-10-31 16:22:22 +01:00
Linus Rath
d381144c99
feat: put reply and reply all at the top of the open message on the phone in mountain view #1475
2026-10-31 16:21:40 +01:00
Linus Rath
7c88fb8c5b
fix: shrink the mail body to its content when it gets shorter after opening #1474
2026-10-31 16:21:35 +01:00
Linus Rath
c13b87c0e8
fix: keep the undo toast off the header on phones #1472
2026-10-31 16:15:58 +01:00
Linus Rath
a0da9eb6c2
fix: show the results when searching with a message open in mountain view #1468
2026-10-31 16:15:57 +01:00
Linus Rath
8a4d9e36c9
fix: hide the account dot in the unified view with only one account
2026-10-31 15:57:34 +01:00
Linus Rath
3bdbdb1364
docs: move the mobile hand-off contract to the website
2026-10-31 14:32:39 +01:00
VasilisNtovolos
2e8a73ffd2
fix: time out stalled XHR uploads after inactivity
2026-10-31 15:16:17 +02:00
Jacob Zeitz
d5cd3c6e40
feat(plugins): star and after-send hooks name the mail's account
...
Message ids repeat across accounts, so a hook payload naming only an
emailId could not tell a plugin which mailbox the message lies in when
it is a shared or group account's.
onBeforeEmailStarToggle and onEmailStarToggle now carry accountId when
the starred message is not in the user's own account, as the
message-row-actions click context does. Every star (the row's button,
the reader's star, the key, the menu) goes through toggleStar, one
message at a time, so one accountId names it; the account is resolved
before the plugins are asked. An own message's payload is unchanged.
onAfterEmailSend now carries accountId, the JMAP account the sent
message lies in (a mail sent from a shared or group identity lies in
that account), so api.email.get finds it. sendEmail returns that account
as emailAccountId, the S/MIME send too. The hook also carries
composerId, the id the sending composer's slots and actions gave
plugins, so a plugin can act on what the user chose in that composer.
2026-10-31 14:15:06 +01:00
Jacob Zeitz
54ad6390b3
feat(plugins): api.ui.openEmail opens a message in the reader
...
A plugin opens a message as a click on a list row or on a search result
entry naming one does, also a message of a shared or group account,
reached through the login that reads it. On the mail page it opens in
place, in the Pro shell in an email tab as a message link does there;
elsewhere the tab loads the message's link, at most five times a minute.
A message no login reads, or one its account does not have, is refused
with an error the plugin sees, as is one the mail page could not open.
Needs email:read.
2026-10-31 14:14:48 +01:00
Linus Rath
fb3ba0275a
feat: hand the mobile app a one-time code instead of the sign-in in its link
2026-10-31 14:06:44 +01:00
Linus Rath
4887ed457c
fix: stop list toolbar timers from firing after the toolbar is gone
2026-10-31 02:28:55 +01:00
Linus Rath
b11139887d
fix: stop the hearing preset card from looking selected
2026-10-31 02:06:19 +01:00
Linus Rath
fe65ab528b
fix: keep a one-digit unread folder count next to its total
2026-10-31 02:01:16 +01:00
Linus Rath
5340499520
fix: give quick reply the composer's placeholder, attachment and send confirmation checks
2026-10-31 02:00:51 +01:00
Linus Rath
8a09ba5734
fix: leave a bounce's delivery report out of list chips and forwards
2026-10-31 01:50:03 +01:00
Linus Rath
d4682890ab
fix: hide the quick actions on the open message once the pointer leaves it
2026-10-31 01:47:00 +01:00
Linus Rath
c166651d14
fix: leave the preview line out of the density sample while show preview is off
2026-10-31 01:41:35 +01:00
Linus Rath
5f1d03f19c
fix: stop the message list from jumping back while scrolling
2026-10-31 01:38:17 +01:00
Linus Rath
b9d795b2cc
fix: show demo mode as a plain sidebar row instead of a tinted box
2026-10-31 01:37:42 +01:00
Linus Rath
3bb9f7df84
fix: lead with the address when two accounts share a name in the account switcher
2026-10-31 01:37:06 +01:00
Linus Rath
7ecde89fc6
fix: keep the sidebar header gear and plus buttons from running into the folder row below
2026-10-31 01:36:08 +01:00
Linus Rath
99aff47d6e
fix: label the search filter panel's button search instead of done
2026-10-31 01:31:04 +01:00
Linus Rath
8b29254a61
fix: hide reply on drafts and scheduled messages in mountain view conversations #1404
2026-10-31 01:26:58 +01:00
Pasquale
3b4b6b9e77
feat: add reply all to expanded mountain view message headers #1404
2026-10-31 01:23:22 +01:00
Linus Rath
dafdda5347
fix: let search results move into the open folder #1452
2026-10-31 01:16:34 +01:00
Linus Rath
9af0304616
fix: return to the list after moving or reporting the open message as spam #1458
2026-10-31 01:03:08 +01:00
Linus Rath
3406580a3f
fix: return to the list after archiving the open message #1458
2026-10-31 00:56:03 +01:00
Jacob Zeitz
df8734f412
feat(plugins): input in a plugin frame counts as activity for the idle sign-out
...
Input inside an iframe never reaches the host window, so the idle timeout
signed users out while they worked in a plugin page, dialog or panel. The
sandbox runtime now reports trusted input in its frame (the guard's own
events, focus left out) through a MessagePort it hands the host with
sandbox-ready, before any plugin code runs, at most once per 15 s. The
host bridge passes it to a small notifier the session timeout guard
counts like its own window's input, so it reaches the other tabs too.
2026-10-30 16:37:42 +01:00
VasilisNtovolos
b6290f85b1
fix: wait for attachment uploads before saving and closing drafts
2026-10-30 14:28:21 +02:00
Linus Rath
dee2c07ce9
Merge branch 'main' of https://github.com/bulwarkmail/webmail
2026-10-30 11:05:11 +01:00
Linus Rath
859d368a1c
feat: offer add to calendar on booking cards
2026-10-30 05:46:11 +01:00
Linus Rath
4479df3bf5
Merge branch 'feat/structured-mail-calendar' into feat/structured-mail
2026-10-30 05:42:47 +01:00
Linus Rath
df257c23ba
Merge branch 'feat/structured-mail-cards' into feat/structured-mail
2026-10-30 05:40:44 +01:00
Linus Rath
3aac5a5c4c
fix: show booking calendar state across cards, say when a plugin stops a change and make the calendar picker keyboard friendly
2026-10-30 05:40:19 +01:00
Linus Rath
b0782af2d1
fix: keep routes and booking numbers in reading order in right-to-left languages
2026-10-30 05:40:17 +01:00
Linus Rath
b429f25360
fix: load no product images on conversation cards in plain-text mode
2026-10-30 05:40:16 +01:00