Linus Rath
d8f6be7b1e
fix: delete a finished export's file from the browser when its account signs out
2026-11-01 05:42:00 +01:00
Linus Rath
58f66c4fdc
fix: list the folders in the import dialog when it opens from Settings
2026-11-01 05:42:00 +01:00
Linus Rath
15f0bd198c
feat: export a folder or the whole account as mbox or ZIP
2026-11-01 05:28:58 +01:00
Linus Rath
a06281f23f
feat: import Outlook PST files into their folders
2026-11-01 05:13:02 +01:00
Linus Rath
d714957f98
feat: import mbox, EML and ZIP mail with progress, pause and resume
2026-11-01 04:58:55 +01:00
Linus Rath
123018f322
feat: add the policy sections and admin pages for the enterprise features
2026-11-01 04:20:02 +01:00
Linus Rath
84de2395f0
fix: keep trusted senders from loading remote content anywhere while the organisation blocks it
2026-11-01 03:27:49 +01:00
Linus Rath
d781e8762e
Merge branch 'feat/multi-instance'
2026-11-01 01:43:15 +01:00
Linus Rath
391f22cf7d
test: open attachments through the bar's tile button in the blob routing tests
2026-11-01 00:51:10 +01:00
Linus Rath
f25b9ea34b
fix: keep hidden buttons on attachment cards from catching taps
2026-11-01 00:48:41 +01:00
Linus Rath
905d841be4
chore: drop the outdated Stalwart/RocksDB warning from files
2026-11-01 00:41:41 +01:00
Linus Rath
4842e08cde
fix: show shared mailboxes under each account when several are signed in #1486
2026-11-01 00:24:57 +01:00
Linus Rath
68d64f5018
fix: pair the policy with its own version and keep config reloads and saves from undoing each other #1066
...
Fixes from the review of the admin part:
- GET /api/admin/policy reads the policy and its version together; an
identity check waiting on the store let another replica's change pair
the old policy with the new ETag, and a save with it then won.
- A policy save answers with the stored policy and its ETag, and the
policy, organisation, plugins and themes pages continue from that
instead of reading it back from an instance that may not have it yet.
- A stored policy that doesn't parse keeps its version, so a save can
replace it instead of answering 409 forever.
- A reload of another replica's change throws when this replica's writes
kept landing while it read, so the change poller tries again; a write
whose reload raced it reads the document again instead of applying its
older result.
- Dropping a deleted plugin from the policy rereads policy.json first in
local mode, as every other write does.
- New updateAdminConfig(key, change) builds a value on the stored one.
The policy route's test mocks gain getPolicyWithVersion.
2026-10-31 23:55:17 +01:00
Linus Rath
d6e98e207a
Merge branch 'feat/multi-instance' into feat/multi-instance-admin
2026-10-31 23:45:00 +01:00
Linus Rath
eb2e3b2baa
feat: make the attachment bar the default and retire attachments beside the sender
2026-10-31 23:35:54 +01:00
Linus Rath
417f512765
feat: add preview cards under the message as an attachment position
2026-10-31 23:28:20 +01:00
Linus Rath
77c23a9e56
feat: show attachments as a bar of equal tiles under the message header
2026-10-31 23:20:53 +01:00
Linus Rath
25408b2ac2
fix: refuse a policy save from a page opened before someone else saved #1066
...
The admin pages save the whole policy from the draft they loaded. A
save from a page opened before another tab's or another admin's save,
or before a deleted plugin was dropped from the policy, used to put the
older policy back. GET /api/admin/policy now sends the policy version as
an ETag; the policy, organisation, plugins and themes pages send it back
as If-Match, and a save based on an older version answers 409 and keeps
the draft on the page. A PUT without If-Match replaces the policy as
before. Deleting a plugin or theme changes only its id in the stored
policy, and a policy import compares against what it replaces.
Test mocks of the config manager gain getPolicyVersion and updatePolicy,
which the route and the extension cleanup now call.
2026-10-31 22:57:57 +01:00
Linus Rath
fd4a319eae
feat: show the storage and how many instances checked in on the admin overview #1066
2026-10-31 22:46:08 +01:00
Linus Rath
3e79c6e718
fix: keep tags, scheduled order and the subfolder action right on compact shared mailboxes #1342
2026-10-31 22:23:21 +01:00
Jacob Zeitz
fca08981a1
feat: compact shared mailboxes in the sidebar #1342
...
Closes #1483
2026-10-31 22:17:39 +01:00
Linus Rath
35508913ac
feat: show marketplace screenshots above the versions and open them large on click
2026-10-31 18:55:05 +01:00
Linus Rath
d23a2869d1
Merge remote-tracking branch 'origin/main' into fix/found-fix-server
...
# Conflicts:
# Dockerfile
# docker-compose.yml
2026-10-31 18:17:39 +01:00
Linus Rath
6a1da49f52
fix: let accessibility reset bring back the organisation's defaults and cover every option
2026-10-31 17:57:20 +01:00
Linus Rath
48c8d37e37
fix: hide subscribe to calendar in lite, which can't fetch feeds
2026-10-31 17:52:28 +01:00
Linus Rath
f11ddf82dd
fix: tell banner plugins when an admin opened the mailbox through impersonation
2026-10-31 17:48:29 +01:00
Linus Rath
a9e93881b5
feat: match filter conditions against a regular expression #885
2026-10-31 17:45:26 +01:00
Linus Rath
73a7bb7bcd
fix: send the headers plugins add to an outgoing message instead of dropping them
2026-10-31 17:40:20 +01:00
Linus Rath
f8805b8d52
fix: keep remote content blocked for trusted senders when the organisation locks it to block
2026-10-31 17:32:24 +01:00
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