Linus Rath
88d87be685
fix: correct PWA icons with proper sizing, transparency, and dark/light mode support
2026-04-10 19:26:12 +02:00
Linus Rath
5ddb2acfc7
fix: category dropdown blocking Save button in contact form #177
2026-04-10 18:40:32 +02:00
Linus Rath
5f150f039d
feat: warn on send when attachment keyword found but no file attached #172
2026-04-10 18:24:52 +02:00
Linus Rath
4f54f768e8
Feat: enable keyword reordering #174 and multi-tag support per email #173
2026-04-10 17:31:13 +02:00
Linus Rath
3e85e07363
feat: separate branch containers into beta and dev packages
2026-04-10 14:46:04 +02:00
Linus Rath
facef97fcc
feat: publish main and dev branches as separate GHCR packages
2026-04-10 14:33:18 +02:00
Linus Rath
89d580b90d
feat: add don't remind me again option to install prompt for PWA
2026-04-10 14:20:48 +02:00
Linus Rath
734155c939
Merge branch 'main' of https://github.com/bulwarkmail/webmail
2026-04-09 22:22:48 +02:00
Linus Rath
790d7084af
fix: restore service worker and add manifest icons
2026-04-09 22:19:56 +02:00
Pascal Dietrich and Linus Rath
60efb047d8
docs: add SESSION_SECRET_FILE and OAUTH_CLIENT_SECRET_FILE env vars
2026-04-09 22:13:08 +02:00
Pascal Dietrich and Linus Rath
f9052eb23f
feat: add SESSION_SECRET_FILE and OAUTH_CLIENT_SECRET_FILE env vars
2026-04-09 22:13:08 +02:00
Linus Rath
9c5daa3918
chore: update version to 1.4.12
1.4.12
2026-04-09 20:08:03 +02:00
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