Linus Rath
23870801fc
chore: update version to 1.4.12
2026-04-09 20:04:06 +02:00
Davi Maciel and Linus Rath
ae793551ba
fix(email-list): show recipient in Sent and Drafts folders
...
When viewing the Sent or Drafts mailbox, the list items always
displayed the sender (email.from[0]) — which is always the logged-in
user — instead of the recipient. This makes it impossible to
identify messages by who they were sent to.
This change detects the current mailbox role from the store and
swaps the displayed person to email.to[0] when the role is 'sent'
or 'drafts'. For multi-email threads, participant names are
computed from the collected recipients of the thread's emails.
Affected components:
- EmailListItem (flat list, threading disabled)
- SingleEmailItem (single-email thread)
- ThreadListItem (multi-email thread header + avatar)
This matches the behaviour of Gmail, Outlook, Apple Mail, and
every other mainstream mail client.
2026-04-09 19:52:09 +02:00
Linus Rath
f19aaf6207
fix: embed dropped images as data URLs and prevent duplicate attachment #163
2026-04-09 19:50:42 +02:00
Linus Rath
d0cc439fd1
feat: add automatic identity synchronization ( #167 )
2026-04-09 19:39:04 +02:00
Linus Rath
f42f57b8d0
fix: preserve search filters on push-triggered mailbox refresh #164
2026-04-09 19:10:34 +02:00
Linus Rath
0d4b588fd0
feat: add Latvian (lv) locale support
2026-04-08 22:42:56 +02:00
Linus Rath
6a725dde58
feat: add Latvian (lv) locale support
2026-04-08 22:42:15 +02:00
Linus Rath
6499da6281
feat: sync mail view to browser history for back/forward navigation
2026-04-08 22:20:36 +02:00
Linus Rath
b2379fb03f
fix: align shared account folders with primary folders #151
2026-04-08 13:45:31 +02:00
Linus Rath
b29e71124d
fix: prune recent files against server nodes on refresh #146
2026-04-08 13:22:51 +02:00
Linus Rath
63593e2146
fix: use fetch param type instead of RequestInit
2026-04-08 13:18:07 +02:00
Linus Rath
10cbe7a637
fix: stream WebDAV PUT uploads to avoid buffering in memory #162
2026-04-08 13:16:28 +02:00
Linus Rath
79418f013a
fix: allow blob images in CSP for inline drag-and-drop #163
2026-04-08 13:10:04 +02:00
Linus Rath
4024732696
fix: handle 403 on principal fetch without console error
2026-04-08 13:08:46 +02:00
Linus Rath
ffad3ea78b
feat: Ability to rename address book #152
2026-04-08 13:05:42 +02:00
Linus Rath
a9b9aeb44d
fix: clamp Feb 29 birthdays in non-leap years #163
2026-04-08 12:47:24 +02:00
Linus Rath
3d76fe6d75
fix: focused mode expanding to the right of the screen #156
2026-04-08 12:43:48 +02:00
Linus Rath and GitHub
58cafe28ad
Update CONTRIBUTING.md
2026-04-07 10:17:30 +02:00
Linus Rath and GitHub
60f9a3dc4d
Update CONTRIBUTING.md
2026-04-07 02:28:06 +02:00
Linus Rath and GitHub
11d9db5580
Update CONTRIBUTING.md
2026-04-07 02:27:19 +02:00
lingxh and Linus Rath
05d3f0b469
add zh_cn
2026-04-07 01:11:04 +02:00
Sienna Meridian Satterwhite and Linus Rath
c3f60448ad
feat: configurable OAuth scopes and cookie security via env vars
...
Add three environment variables for deployments with external identity
providers (Keycloak, Authentik, Ory Hydra, etc.):
- OAUTH_EXTRA_SCOPES: append additional scopes to the default
"openid email profile" (e.g. "offline_access" for refresh tokens)
- OAUTH_SCOPES: full override of the requested OAuth scopes
- COOKIE_SECURE: override the Secure flag on auth cookies (useful
for reverse proxy setups where the internal hop is HTTP)
Without these, deploying Bulwark with an external OIDC provider that
requires `offline_access` for refresh tokens is impossible — sessions
die on every page refresh because no refresh token is issued.
All three are backwards-compatible: unset = identical to current behavior.
2026-04-06 23:22:06 +02:00
p.kwiatkowski and Linus Rath
523711cca3
feat: add Polish language support
2026-04-06 23:20:25 +02:00
Linus Rath
bcb487810a
feat: add Korean language support
2026-04-05 16:46:17 +02:00
rldn12134 and Linus Rath
7e1d644f7d
feat: Add Korean translation file
2026-04-05 13:51:22 +02:00
Linus Rath
4aac65d7d2
feat: add birthday calendar feature with settings and localization
2026-04-03 22:45:07 +02:00
Linus Rath
14ecae61dc
feat: enhance error handling in Stalwart API responses
2026-04-03 15:10:11 +02:00
Linus Rath
c53ff5a30a
fix: file deletion logic to update recent files and handle errors #146
2026-04-03 14:20:06 +02:00
Linus Rath
5aad97d64e
feat: add PWA support with service worker and install prompt
2026-04-03 04:39:19 +02:00
Linus Rath
081c865018
fix: guard against undefined trigger in calendar event alert popover #143
2026-04-03 03:15:55 +02:00
Linus Rath
050f38b1fa
fix: use dynamic batch size for calendar event retrieval
2026-04-02 23:29:37 +02:00
Linus Rath
d657bdfa75
fix: improve calendar event retrieval by batching requests to avoid server limits #141
2026-04-02 22:55:07 +02:00
Linus Rath
bbf724d9e1
fix: correct logic for marking email as read in EmailViewer component
2026-04-02 22:50:04 +02:00
Linus Rath
9d8c6044e3
fix: optimize htmlToPlainText function using DOMParser
2026-04-02 17:32:53 +02:00
Linus Rath
2d17ca71e3
fix: replace random ID generation with generateUUID()
2026-04-02 17:29:00 +02:00
Linus Rath
d77dd1e3e1
fix: replace non-UUID fallback
2026-04-02 17:25:10 +02:00
Linus Rath
9d97b74684
fix: adjust max width of calendar invitation banner for better layout
2026-04-02 14:56:04 +02:00
Linus Rath
c4673acb65
fix: replace unguarded crypto.randomUUID() with safe generateUUID() utility
2026-04-02 14:51:21 +02:00
Linus Rath
1bdc51dcc7
feat: implement version badge and easter egg in settings
2026-04-02 14:31:25 +02:00
Linus Rath
6ee0f6a40a
feat: disable plugins by default, require admin approval
2026-04-02 13:50:02 +02:00
Linus Rath
9ee25c930e
fix: compute per-occurrence utcStart/utcEnd in recurrence expansion #116
2026-04-02 13:35:26 +02:00
Linus Rath
1b2c70a90b
fix: de-namespace addressBookIds for shared contacts in create and update operations #133
2026-04-02 11:34:26 +02:00
Linus Rath
cdea876992
fix: fetch mailboxes on mount in FolderSettings when store is empty
2026-04-02 11:26:21 +02:00
Linus Rath
16557830ae
fix: mailbox deletion error handling
2026-04-02 11:24:11 +02:00
Linus Rath
8836f9cdca
fix: wrap handleArchive call to prevent MouseEvent leaking as argument
2026-04-02 11:19:36 +02:00
Linus Rath
26bfe9cb6c
fix: extend file drop zone to fill remaining viewport height
2026-04-02 11:14:38 +02:00
Linus Rath
05eaaad61f
fix: fallback to application/octet-stream for long MIME types in createFileNode
2026-04-02 11:04:59 +02:00
Linus Rath
2e0852b272
Merge branch 'main' of https://github.com/bulwarkmail/webmail
2026-04-02 10:57:03 +02:00
Linus Rath
6173a9ad13
fix: resolve settings sync Identity mismatch for OAuth/SSO sessions #127
2026-04-02 10:54:35 +02:00
Linus Rath and GitHub
e3560d9cb4
Add funding configuration for Bulwark Webmail
2026-04-02 00:37:58 +02:00