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
Linus Rath
c083c7e075
Merge pull request #1297 from dealerweb/fix/hover-actions-after-delete
...
fix: show the hover actions on a row that moves under a resting pointer
2026-10-20 21:15:03 +02:00
Linus Rath
976f3ea543
feat: keep the reader's side panel open across messages with its toggle in the toolbar
2026-10-20 19:12:20 +02:00
Linus Rath
b825a54a73
fix: close the reader's toolbar menus when a click goes into the message or a plugin panel
2026-10-20 18:58:55 +02:00
Linus Rath
e7a622d4ee
feat: run the reader toolbar over the side panels to the right edge
2026-10-20 18:52:50 +02:00
Linus Rath
1d9e908e63
fix: stop the pane divider from following the mouse after the button is released over a frame
2026-10-20 17:53:18 +02:00
Linus Rath
ad3e529b8e
feat: tell reader plugin frames whether they are on a phone, a tablet or a desktop
2026-10-20 17:21:13 +02:00
Linus Rath
b89c127ed6
fix: tell a plugin that a composer panel is not on screen on a phone
2026-10-20 17:21:13 +02:00
Linus Rath
95003fd28b
feat: let a plugin panel start folded until the user or the plugin opens it
2026-10-20 17:21:13 +02:00
Linus Rath
95bfb1681c
feat: let a plugin's panel frame fill the panel and scroll inside
2026-10-20 17:21:13 +02:00
Linus Rath
2319f6a0f0
feat: let the user drag the composer's plugin panels wider or narrower
2026-10-20 17:21:13 +02:00
Linus Rath
2bb5a62ac4
feat: let a plugin open, close and toggle the panel its slot sits in
2026-10-20 17:21:13 +02:00
Linus Rath
8deb887e95
feat: let plugins see and act on text selected in a message, with a right-click menu and the side panel's selection
2026-10-20 17:21:12 +02:00