Linus Rath
efa875ccc7
Merge branch 'feat/do-ux-mail-accounts' into feat/do-ux-mail-fixes
...
# Conflicts:
# components/email/email-list.tsx
2026-11-04 07:23:30 +01:00
Linus Rath
3357114229
Merge branch 'feat/do-ux-mail-list' into feat/do-ux-mail-fixes
2026-11-04 07:23:18 +01:00
Linus Rath
0202803e77
fix: name system folders as the sidebar does in search result chips, the folder menu and the Spam banner
2026-11-04 06:53:17 +01:00
Linus Rath
2859260a72
feat: add Move to the selection bar and use the empty reading pane for a selection and the first-run tips
...
The selection bar showed Archive, Delete and Tag, with Move only in its
more menu and both read buttons only on wide bars. The reading pane said
"No conversation selected" next to a selection, and the first-run tips
took a third of the list.
- The bar has Archive, Delete, Move, one read/unread button ("Mark as
read" while anything selected is unread) and Tag, then the rest.
- With a selection the empty reading pane shows "5 conversations
selected" and the same buttons.
- The first-run tips sit in the empty reading pane where it shows beside
the list; phones and layouts without that pane keep them above the list.
- A bulk move's toast names the folder.
2026-11-04 06:51:13 +01:00
Linus Rath
1b4cecd2a5
fix: show one preview line in regular list rows, two in comfortable ones
...
The skeleton test counted two preview lines per regular row; regular rows now draw one, so it expects one there and two for comfortable rows.
2026-11-04 06:45:10 +01:00
Linus Rath
295eb35671
fix: say a move, archive or delete once in its toast and drop the menu's ellipsis from the New folder dialog title
...
The delete Undo test looked for the "Email deleted" toast; a delete to Trash now says "Moved to Trash", so it looks for that one.
2026-11-04 06:44:45 +01:00
Linus Rath
e634884d4e
fix: count conversations and their messages above search results
2026-11-04 06:43:45 +01:00
Linus Rath
4c5f3d8f29
feat: suggest senders of the mail on screen while typing a search
2026-11-04 06:43:05 +01:00
Linus Rath
2f108b08fa
fix: show dates from earlier this year as day and month in mail lists and search results
...
The formatter cache test expected the numeric date for every older mail; earlier this year it now reads "Oct 24" unless a date order is picked in the region settings, so the test expects that for those dates.
2026-11-04 06:42:51 +01:00
Linus Rath
e67705add0
fix: show in the message list when mail arrived, the order it is sorted in
2026-11-04 06:42:43 +01:00
Linus Rath
4224149ab5
feat: move Compose to the top of the folder sidebar on desktop and keep one account switcher and one list menu
...
Two mail-app tests clicked the round Compose button on a desktop; their
mocked sidebar now draws the Compose button the real one has there.
2026-11-04 06:39:16 +01:00
Linus Rath
c721c737b7
fix: list the all-accounts badge setting in settings search only with several accounts
2026-11-04 06:38:53 +01:00
Linus Rath
60a97303c2
fix: open the folder when its unread count is clicked, and search all folders again on a new search
...
Two sidebar tests asserted the old unread-count button (it filtered the
folder to unread without opening it, in a 24px target); they now check
that the count is plain text and opens the folder.
2026-11-04 06:17:05 +01:00
Linus Rath
9ce7ac8172
feat: show unread per account in the switcher and count every account on the app badge and tray
...
The default layout's switcher listed accounts without their unread, so an
existing test asserted that (account-switcher-mountain-view, 'unread-free');
it now expects each account's count. The idle-outside-Pro hook test now
uses one account, since a second connected account loads in every layout.
2026-11-04 06:06:37 +01:00
Linus Rath
0e400dbcf4
Merge branch 'feat/do-proxy-fixes' into feat/desktop-offline
2026-11-04 04:20:49 +01:00
Linus Rath
c49c68ffbd
Merge branch 'feat/desktop-offline' into feat/do-proxy-fixes
2026-11-04 04:12:23 +01:00
Linus Rath
e101b0db27
Merge branch 'feat/do-keystore-fixes' into feat/desktop-offline
2026-11-04 03:59:11 +01:00
Linus Rath
8cd9d72558
Merge branch 'feat/desktop-offline' into feat/do-proxy-fixes
2026-11-04 03:55:52 +01:00
Linus Rath
bce0c0b744
Merge branch 'feat/desktop-offline' into feat/do-keystore-fixes
2026-11-04 03:52:09 +01:00
Linus Rath
7443654459
Merge branch 'feat/do-package-fixes' into feat/desktop-offline
2026-11-04 03:43:04 +01:00
Linus Rath
92e6ee1bfa
Merge branch 'feat/do-trust-fixes' into feat/desktop-offline
2026-11-04 03:43:04 +01:00
Linus Rath
be8aba2ae7
Merge remote-tracking branch 'origin/main' into feat/desktop-offline
...
# Conflicts:
# stores/auth-store.ts
2026-11-04 03:42:18 +01:00
Linus Rath
d3308e7729
Merge branch 'feat/desktop-offline' into feat/do-keystore-fixes
...
# Conflicts:
# lib/desktop/__tests__/policy-schema.test.ts
2026-11-04 03:31:22 +01:00
Linus Rath
2f846bb2da
fix: list the browser sign-in budget as shared server state
2026-11-04 03:30:48 +01:00
Linus Rath
35a4b034b1
fix: show optional permissions in the marketplace, and ask before an update adds a permission
2026-11-04 03:23:46 +01:00
Linus Rath
9b61b79d5c
fix: sign only CMS signed attributes through api.keystore, and ask a user about a managed plugin's keystore
...
The shell now takes a message's signed attributes where it took a digest,
so a page can't get a login or TLS digest signed. A quiet option lets a
plugin answer from what's allowed, for anything the user didn't ask for.
An admin's install no longer covers the certificates on someone's own
computer: a managed plugin gets `keystore` when that person says yes, also
when an update adds it, and it's forgotten once everyone has signed out.
Changed test assertions: the fixture plugin needs a grant now, as managed
alone is no longer enough, and the bridge gets an options argument.
2026-11-04 03:23:45 +01:00
Linus Rath
f0e874103d
fix: take back certificate grants when a session ends without a sign-out
2026-11-04 03:23:45 +01:00
Linus Rath
b1f26a93bf
feat: let an organisation turn the system certificate store off by policy
2026-11-04 03:23:44 +01:00
Linus Rath
484ce34f5d
Merge branch 'feat/do-browser-signin' into feat/desktop-offline
2026-11-04 03:19:32 +01:00
Linus Rath
cb9a5ac810
Merge branch 'feat/do-edit-attachments' into feat/desktop-offline
2026-11-04 03:16:35 +01:00
Linus Rath
466fa7f974
fix: keep the desktop app's session secret and admin password out of its server's environment
2026-11-04 03:15:42 +01:00
Linus Rath
a9e33ec2d6
fix: stop a page wiping another account's plugin secrets by naming it in the desktop app
...
A wipe by name took any username and server with no session behind it. It
now needs a sealed cookie the account got while it was signed in, since a
dropped account has no session cookie left. The old wipe test asserted that
a name alone was enough, which is the behaviour being removed.
2026-11-04 03:15:35 +01:00
Linus Rath
adc86cf4f7
fix: say where the device list is when turning push off could not reach the server
2026-11-04 03:14:00 +01:00
Linus Rath
149d08d87b
test: load the preview route once before its cases, so a slow import can't spill into them
2026-11-04 03:13:59 +01:00
Linus Rath
97b3ddefae
test: cover what the page tells the worker about a quiet login
2026-11-04 03:13:59 +01:00
Linus Rath
f39cff2377
fix: call no relay from the worker in no-third-party mode, and handle several accounts in one push side by side
2026-11-04 03:13:59 +01:00
Linus Rath
d8e2a4f42c
fix: keep a waiting re-sync from undoing what another tab turned off, and note the relay on refresh
2026-11-04 03:13:59 +01:00
Linus Rath
9432345440
fix: keep a nothing-new notification from closing or replacing a real one
2026-11-04 03:13:59 +01:00
Linus Rath
8cb218ce3c
fix: apply email notifications off and do not disturb per login, not to every login's mail
2026-11-04 03:13:59 +01:00
Linus Rath
f0517ecd08
test: type the sign-out push test's fake client
2026-11-04 03:13:59 +01:00
Linus Rath
248f9c261b
fix: take down push for logins with no connection when signing out of everything
2026-11-04 03:13:59 +01:00
Linus Rath
9bc31b54ab
fix: keep notifications generic after the browser closed when the organisation has idle limits
2026-11-04 03:13:59 +01:00
Linus Rath
6dbda4424e
fix: stop a stuck push setup from holding up every tab and login
2026-11-04 03:13:58 +01:00
Linus Rath
bc8653de8b
fix: only replace a browser subscription on the relay's own answer, and move the other logins along
2026-11-04 03:13:58 +01:00
Linus Rath
226b9383ce
fix: show a generic notification instead of guessing which login a push is for
2026-11-04 03:13:58 +01:00
Linus Rath
f0617a61b1
fix: only treat a server subscription as this browser's when its device id matches
2026-11-04 03:13:58 +01:00
Linus Rath
80084457be
fix: end a removed login's push before its client disconnects
2026-11-04 03:13:58 +01:00
Linus Rath
09d6bff12a
fix: say push isn't available in the demo instead of offering a switch that fails
2026-11-04 03:13:58 +01:00
Linus Rath
6ffa0a3715
fix: show the real sender and subject for a push after the browser was closed
2026-11-04 03:13:57 +01:00
Linus Rath
5c62c57657
fix: replace a browser subscription the push service gave up on
2026-11-04 03:13:57 +01:00