Linus Rath
e159ca1420
fix: name the rail's Mail entry Mail for screen readers instead of its unread count
2026-10-26 16:49:44 +01:00
Linus Rath
272fc5e1f4
fix: reuse a group account's year and month archive folders instead of creating them again or in the own account
2026-10-26 16:14:19 +01:00
Linus Rath
4a9284aa48
fix: mark the answered or forwarded message from a Pro compose tab also when the send is held for undo
2026-10-26 16:14:18 +01:00
Linus Rath
34ad859ce4
fix: refuse Undo and Send now for a delayed send of a signed-out account instead of acting through the active one
2026-10-26 16:11:53 +01:00
Linus Rath
ceaa9cea39
fix: highlight only the open message in lists that mix accounts, not another account's message with the same id
2026-10-26 16:11:52 +01:00
Linus Rath
54b197080c
fix: keep a discarded draft of a signed-out account instead of deleting another account's message with its id
2026-10-26 16:11:52 +01:00
Linus Rath
0b917d6262
fix: mark the replied, forwarded or receipted message as answered in its own account, not another account's message with the same id
2026-10-26 16:11:52 +01:00
Linus Rath
acac3128bc
fix: archive and delete a message from its own account's folders in tag and unified views
2026-10-26 16:11:51 +01:00
Linus Rath
87701c8c20
fix: keep the calendars shown or hidden in the Pro interface as the user set them
2026-10-26 15:15:58 +01:00
Linus Rath
7da326b86e
fix: keep the server's path in the fallback CalDAV address
2026-10-26 15:15:58 +01:00
Linus Rath
f0392a6705
fix: check a meeting reply's sender against the attendee who answers, not the organizer
2026-10-26 15:15:58 +01:00
Linus Rath
ae897b42a4
fix: make the impersonation handoff really clear the previous account list and ignore ?impersonated=1 links from elsewhere
2026-10-26 14:58:31 +01:00
Linus Rath
e314e56661
fix: keep the own and a group's scheduled mail apart when their ids are the same
2026-10-26 12:26:58 +01:00
Linus Rath
8c9cf8e63e
test: check draft account and threading headers in createDraft's options after the merge
2026-10-26 12:26:57 +01:00
Linus Rath
dcde570ebe
fix: say the directory can't be browsed instead of that a refresh failed when the server lists only the people you know
2026-10-26 12:25:32 +01:00
Linus Rath
b038c82dcc
fix: only offer to apply a counter proposal sent by one of the meeting's participants
2026-10-26 12:25:31 +01:00
Linus Rath
b5c6b67ba4
fix: keep a link in a printed message from redirecting the webmail tab
2026-10-26 11:22:10 +01:00
Linus Rath
3f2f27321c
fix: keep an unquoted cid: image from swallowing the rest of the message
2026-10-26 11:22:10 +01:00
Linus Rath
6014142358
fix: show conversation and attached-message attachment names without directional override characters
2026-10-26 11:22:10 +01:00
Linus Rath
c133659c83
fix: run links in conversation messages through the reader's link gate
2026-10-26 11:22:10 +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
Linus Rath
3bfba19ca5
fix: give Mountain View's list chips Gmail's height and spacing
2026-10-25 13:14:24 +01:00
Linus Rath
f7a4087c91
feat: split the Mountain View inbox into Unread and Everything else, as Gmail's unread first
2026-10-25 13:13:46 +01:00
Linus Rath
e31f55064e
fix: use the current calendar and contacts icons in the Mountain View side panel
2026-10-25 12:56:48 +01:00
Linus Rath
cb663d2222
fix: keep settings switches full width next to long labels
2026-10-25 12:49:55 +01:00
Linus Rath
0b1463b7d5
feat: show attachment and code chips as Gmail pills in Mountain View
2026-10-25 12:48:49 +01:00
Linus Rath
39c8b14574
fix: open the admin panel in the desktop layout without a phone-layout flash
2026-10-25 12:42:02 +01:00
Linus Rath
07627b3a60
fix: give every app's sidebar header and toolbar the same height as mail
2026-10-25 12:30:23 +01:00
Linus Rath
9c360694bf
fix: send paragraphs with the spacing the composer shows #1340
2026-10-25 12:27:13 +01:00
Linus Rath
6be0f70452
perf: skip plugin round trips when a slot re-renders with the same props
2026-10-25 02:40:43 +02:00
Linus Rath
782d4f8bf5
perf: stop loading the app's stores in every plugin frame
2026-10-25 02:09:37 +02:00
Linus Rath
a49ab079ec
fix: sanitize quoted and signature HTML in re-opened drafts (GHSA-g35q-3gpc-x2rr)
2026-10-24 22:13:19 +02:00
Linus Rath
6d459674f8
Merge pull request #1109 from hildebrandttk/fix/group-identity-sent-copy
...
fix: save a group identity's drafts in the group account's Drafts (#1…
2026-10-24 17:55:10 +02:00
Linus Rath
1bd1a6b123
Merge pull request #1334 from HOLOEYE-JZ/feat/sidebar-tags-first
...
feat: admin policy gate to list the Tags above the shared mailboxes
2026-10-24 17:55:01 +02:00
Linus Rath
3b8dd4cd82
Merge pull request #1317 from LeonardNJU/feat/plugin-sidebar-heading-actions
...
feat(plugins): allow inline actions in collapsible sidebar headers
2026-10-24 17:54:53 +02:00
Linus Rath
10caa9e2f3
Merge pull request #1316 from ghozty/feat/app-name-strings
...
feat: name the app with the configured APP_NAME in user-facing strings
2026-10-24 17:54:49 +02:00
Jacob Zeitz and Claude Opus 5.5
96526c1b41
feat: admin policy gate to list the Tags above the shared mailboxes
...
A new feature gate, tagsAboveSharedEnabled (default off, so the sidebar
keeps its order), lists the Tags section above the shared mailboxes
instead of below them. With many shared mailboxes expanded, the tags
otherwise end up out of sight. In Mountain View the tags then follow the
Labels list directly, also when More is open.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-24 08:54:23 +02:00
Linus Rath
a037f9a6e9
fix: do not offer push onboarding while the resync is restoring the subscription #1321
2026-10-22 23:15:32 +02:00
Linus Rath
7049844cf3
fix: keep the message list within the screen on phones
2026-10-22 23:08:39 +02:00
lsamc
51404ed015
feat(plugins): allow inline actions beside sidebar section headings
2026-10-21 21:20:29 -04:00
ghozty and Claude Opus 5.5
30f51e5ca4
feat: name the app with the configured APP_NAME in user-facing strings
...
Some user-facing strings still said "Bulwark" on a deployment with its own
APP_NAME: Settings > General > Default apps (protocol handlers), the "Open
Bulwark" notification, the rate-limit banner and toast, the plugin connect
dialog, one plugin permission text and the connector page.
These strings now take an {appName} placeholder, filled by productName():
the configured APP_NAME, or "Bulwark" when it is unset or the default
"Webmail" (the same rule as the TOTP issuer and the About card, #1160 ).
A stock install reads as before.
The settings search (the settings page and api.app.searchSettings) indexes
these texts with the name filled in, so "bulwark" or the configured name
finds Default apps and no result carries the raw placeholder.
Locales: the 13 keys in every locale that has "Bulwark" in them. Languages
that inflect the name (cs, et, hu, ko, ro, sk, tr) use a neutral form such
as "{appName} uygulamasında" instead of a declined "Bulwark'ta"; a native
check of those is welcome.
Not changed on purpose: the mobile app, push relay, Lite, demo and admin
texts, which speak about Bulwark itself.
Closes #1314
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-22 04:14:54 +03:00
Linus Rath
ed42c5a92d
fix: cancel the original scheduled send before creating its replacement on reschedule #1308
2026-10-21 19:42:56 +02:00
Linus Rath
b594a354a0
Merge remote-tracking branch 'origin/main'
2026-10-21 16:56:59 +02:00
Linus Rath
68047e7fdb
fix: open the contact card in place instead of sliding in from the top left
2026-10-21 16:54:29 +02:00
Linus Rath
80323148d2
fix: hide sign out of admin for stalwart admins signed in automatically
2026-10-21 00:09:30 +02:00
Linus Rath
24317a7d92
test: drag the composer's plugin panels with pointer events
2026-10-20 21:25:18 +02:00
Linus Rath
b812fe62f4
fix: keep the composer's editor-ready handler stable so a repeated report can't loop
2026-10-20 21:25:17 +02:00
Linus Rath
69ae5200dc
test: drag the composer's plugin panels with pointer events
2026-10-20 21:24:27 +02:00
Linus Rath
617b9b3b51
fix: keep the composer's editor-ready handler stable so a repeated report can't loop
2026-10-20 21:24:03 +02:00
Linus Rath
d292f4c376
Merge pull request #1299 from VasilisNtovolos/fix/pro-blob-routing
...
fix: preserve message ownership in Pro blob downloads
2026-10-20 21:15:08 +02:00