Linus Rath
b22968a7df
fix: show the message list, not only the reader, with a large browser text size and wrap cut-off labels
2026-10-29 19:38:45 +01:00
Linus Rath
84c487e6c3
fix: give each settings and admin page its own tab title and translate the admin page list
2026-10-29 18:02:58 +01:00
Linus Rath
af3019ea2b
feat: read a message aloud with the browser's voice, highlighting what it reads
2026-10-29 17:53:58 +01:00
Linus Rath
cf4d02b49b
feat: draw calendar, tag and folder colours in a colour-blind-safe palette when that setting is on
2026-10-29 17:53:51 +01:00
Linus Rath
23813be9b9
feat: tell screen readers when a folder or search has loaded and when the connection drops
2026-10-29 17:53:50 +01:00
Linus Rath
d713d31af3
feat: announce how much new mail came and flash the tab title slowly with visual alerts
2026-10-29 17:53:49 +01:00
Linus Rath
e2fc2c750a
feat: read toasts out to screen readers, errors assertively
2026-10-29 17:53:44 +01:00
Linus Rath
13d697ddfb
feat: turn off every single-key shortcut when the setting is off
2026-10-29 17:53:34 +01:00
Linus Rath
368acca121
fix: stop app shortcuts from acting behind open dialogs and menus
2026-10-29 17:53:33 +01:00
Linus Rath
d42fc053dd
fix: let Escape close a dialog right after its form closed
2026-10-29 15:35:36 +01:00
Linus Rath
96797597c5
Merge branch 'main' into feat/org-features
2026-10-28 15:14:34 +01:00
Linus Rath
9a4f46f553
fix: show the first hour label whole under the day header when the day and week views open
2026-10-28 13:06:49 +01:00
Linus Rath
e654eadd37
Merge branch 'main' into ux/mail3
2026-10-28 11:10:56 +01:00
Linus Rath
8566cf2b29
Merge branch 'ux/calendar3'
2026-10-28 11:06:37 +01:00
Linus Rath
4dc13c229b
fix: list a repeating event under its own title in calendar search when one occurrence was renamed
2026-10-28 10:28:13 +01:00
Linus Rath
715c3f03a3
fix: let Enter on the skip link move focus to the message list instead of opening a message
2026-10-28 10:22:00 +01:00
Linus Rath
82aeddfdaa
fix: keep hover previews closed while an editor, card or dialog is open and after one closes until the pointer moves
2026-10-28 10:19:02 +01:00
Linus Rath
e48a0ed8f6
fix: write event dates in each language's own order on the event card, the event view and the import preview
2026-10-28 10:13:53 +01:00
Linus Rath
2fbfa7a177
fix: give the focus back to the folder or message checkbox after closing a menu opened with Shift+F10
2026-10-28 09:57:32 +01:00
Linus Rath
33ca8efb0f
fix: keep shared tags safe when members edit at once or the server fails
...
The first version wrote the whole tag list on every change, guessed a
group when the server wouldn't say, and treated a failed read like a
server without metadata. Now:
- Definitions are a map by tag id under `tags`, and each change patches
one tag (`metadata/org.bulwarkmail.tags/tags/<id>`), so two members
adding tags at once both keep theirs. Fields and colors this version
doesn't know survive. The `{ list }` and bare-array shapes are still
read and converted by the first save.
- Shared tags appear only for confirmed group principals. A failed
principal lookup keeps the user's own tags and asks again later.
- "No metadata advertised" (0.16) and "the read failed" are separate.
A failed read keeps the last good tags; a failed save keeps the change,
says so, and sends it with the next good read after the client's
pause.
- Push reloads wait for 5 s of quiet and skip the echo of our own save;
a returning tab reloads definitions only, and the scan for unnamed tags
runs once per sign-in and then at most every 30 minutes.
- The editor names its buttons after the tag, shows the delete warning
and 44 px buttons on phones, returns focus to the edit button, and
asks for Inbox rights only for confirmed groups.
2026-10-28 08:58:11 +01:00
Linus Rath
0cd28097e6
Merge branch 'main' into ux/mail2
2026-10-28 08:16:51 +01:00
Linus Rath
ed9fa2de45
feat: offer Undo after a move to another account and in lists that mix accounts, moving the messages back into their folders
2026-10-28 08:06:45 +01:00
Linus Rath
4b2aba430c
fix: let Back close overlays the same way in calendar, contacts and files
2026-10-28 07:32:05 +01:00
Linus Rath
731ec15af4
Merge branch 'main' into ux/calendar2
...
# Conflicts:
# hooks/use-close-on-back.ts
2026-10-28 07:21:42 +01:00
Linus Rath
d87678a7ba
feat: search events from the calendar toolbar, with / and a palette command
2026-10-28 07:17:16 +01:00
Linus Rath
b049b6f470
feat: share tag names and colours in group mailboxes #1310
2026-10-28 06:43:46 +01:00
Linus Rath
1d5091f68b
fix: close the event or task editor on browser back instead of leaving the calendar, asking first when it has changes
2026-10-28 06:39:15 +01:00
Linus Rath
afd5d8263c
fix: delete a contact category the same way in Settings and Contacts, with the same Undo toast
2026-10-28 06:16:10 +01:00
Linus Rath
ecbbe137c4
fix: wait for sends and keep quick replies as drafts before an automatic sign-out
2026-10-28 04:06:05 +01:00
Linus Rath
5a898dcfd7
fix: let Escape close only the dialog, not also clear the selection behind it
2026-10-28 02:07:54 +01:00
Linus Rath
4c8d597f82
fix: keep Escape working in dialogs after a click inside or on the backdrop
2026-10-28 01:12:42 +01:00
Linus Rath
d610312483
fix: update the open calendar and show reminders on time when events change elsewhere #1349
2026-10-26 20:35:52 +01:00
Linus Rath
af536ac90a
fix: keep the account and other query parameters of a mail link Lite replays after a 404 #1352
2026-10-26 20:01:10 +01:00
Linus Rath
3a225031bc
fix: resize calendar events to the clock time the edge was dropped at on DST change days #1348
2026-10-26 20:01:07 +01:00
Linus Rath
cf2c27157d
Merge branch 'main' into feat/stalwart-1.0
...
# Conflicts:
# components/contacts/contacts-app.tsx
# components/email/__tests__/composer-discard.test.tsx
# components/email/calendar-invitation-banner.tsx
# components/email/email-composer.tsx
# components/mail/mail-app.tsx
# components/pro/pro-compose-tab-body.tsx
# components/pro/pro-email-tab-body.tsx
# components/ui/__tests__/avatar.test.tsx
# components/ui/avatar.tsx
# hooks/use-mailbox-drop.ts
# lib/__tests__/calendar-alerts.test.ts
# lib/__tests__/jmap-calendar-tasks.test.ts
# lib/__tests__/jmap-send-threading.test.ts
# lib/demo/demo-client.ts
# lib/demo/fixtures/calendars.ts
# lib/jmap/client-interface.ts
# lib/jmap/client.ts
# lib/web-push.ts
# stores/__tests__/contact-store.test.ts
# stores/__tests__/email-store-thread-key.test.ts
# stores/calendar-store.ts
# stores/contact-store.ts
# stores/email-store.ts
2026-10-26 10:14:12 +01:00
VasilisNtovolos
96ae3ce4df
fix: reject incomplete email ZIP exports and allow retry
2026-10-21 13:11:41 +03:00
Linus Rath
8428219699
chore: drop the drag test notes from the test folder
2026-10-20 21:15:36 +02:00
VasilisNtovolos
cfa16e1bc2
docs: clarify message drag routing verification
2026-10-20 15:49:05 +03:00
VasilisNtovolos
345fe64515
fix: route dragged emails by owning account
2026-10-20 15:45:47 +03:00
Linus Rath
03031fcb13
feat: jump to the next unread message with n #514
2026-10-17 19:18:20 +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
41a0716c50
Merge branch 'main' into feat/stalwart-1.0
2026-10-16 01:41:48 +02:00
Linus Rath
1cc949416c
perf: load the mail view's code while the login form is shown
2026-10-15 03:24:05 +02:00
Linus Rath
97e13a199c
perf: stop re-rendering every message row when the list changes
2026-10-15 02:24:58 +02:00
Linus Rath
47762bedf6
perf: re-render only the message rows that changed
2026-10-15 00:41:07 +02:00
Linus Rath
8204678847
fix: stop reporting mail actions as done when a plugin stopped them
2026-10-14 19:44:54 +02:00
Linus Rath
be26f96bea
Merge branch 'hooks/calendar' into feat/plugin-system-audit
2026-10-14 03:44:13 +02:00
Linus Rath
348ec1d399
feat: let plugins stop app shortcuts and hear when one ran
2026-10-14 03:44:09 +02:00
Linus Rath
89452871fb
feat: tell plugins when an event reminder fires and when it is dismissed
2026-10-14 03:40:19 +02:00
Linus Rath
051e82b487
feat: tell plugins about layout changes, drag and drop, and sidebar apps
2026-10-14 03:40:04 +02:00