Roman Vanicek and Linus Rath
4a24d2a11d
feat: add Czech language support
2026-04-26 15:48:43 +02:00
Linus Rath
aadf56c27b
fix: emit RFC 9553 name kinds and decode QUOTED-PRINTABLE in vCard import #224 #187
2026-04-26 02:47:19 +02:00
Linus Rath
9f8588eadc
fix: hide preview line in compact density to match settings preview ( #223 )
2026-04-26 02:12:28 +02:00
Linus Rath
d657aec391
feat: add support for right-side composer sidebar and update related types
2026-04-25 19:45:45 +02:00
Linus Rath
fe1d4861bb
feat: composer-sidebar slot + plugin-declared frame-src origins
2026-04-25 18:40:54 +02:00
Linus Rath
29197ea355
feat: replace folder prompt() calls with proper modal dialog
2026-04-25 16:30:18 +02:00
Linus Rath
4788e8a91a
feat: add right-click context menu to mail folders sidebar
2026-04-25 16:26:05 +02:00
Linus Rath
b80678b00f
feat: add 'Today' button to desktop calendar toolbar
2026-04-25 03:11:16 +02:00
Linus Rath
e5083ec1df
fix: restore admin panel after Stalwart v0.16 REST API removal
2026-04-25 01:12:33 +02:00
Linus Rath
df8d04e233
fix: restore broken viewer toolbar actions and improve mobile menu #220
2026-04-24 19:31:38 +02:00
Christian Lepthien
ce9f7af330
fix: improve corean flag
2026-04-24 14:56:58 +02:00
Linus Rath
081e8a0310
feat: add setting to show avatars in junk folder, disabled by default
2026-04-23 18:23:48 +02:00
Linus Rath
6503482b55
feat: support resizing events from the top edge
2026-04-22 21:14:28 +02:00
Linus Rath
39a228b20e
feat: streamline mobile email viewer header layout
2026-04-22 20:50:12 +02:00
Linus Rath
4b069808d6
feat: add isMobile prop to calendar views and time grid interactions
2026-04-22 20:37:00 +02:00
Linus Rath
3c9fa5dc25
feat: implement batch archiving of emails
2026-04-22 00:05:38 +02:00
Linus Rath
40982bc37b
fix: align hover styles and selection-toggle target with focused item
2026-04-21 23:50:55 +02:00
Linus Rath
76f6149841
feat: add setting to toggle alphabetical grouping in contacts list
2026-04-21 23:22:18 +02:00
Linus Rath
7d6a3c8c76
feat: group contacts by first letter with sticky section headers
2026-04-21 23:15:13 +02:00
Linus Rath
3f36045990
feat: reorganize settings into 6 groups with clearer tabs
2026-04-21 22:22:02 +02:00
Linus Rath
9a44babcf1
feat: add collapsible details to calendar invitation banner and update sanitization config for iframe rendering
2026-04-21 21:21:42 +02:00
Linus Rath
f032758303
feat: revamp contact detail, filters, and add photo/print/duplicate
2026-04-21 21:16:54 +02:00
Linus Rath
92c7f74420
feat: add right-click context menu to contacts
2026-04-21 19:33:00 +02:00
Linus Rath
c2e4518cfa
feat: add account addition button to navigation rail
2026-04-21 19:20:50 +02:00
Linus Rath
00f33afdf9
feat: add contact activity component with recent emails and upcoming events
2026-04-21 19:18:36 +02:00
Linus Rath
e566cfe687
feat: add API Keys management and IP allowlist for App Passwords
2026-04-21 18:59:47 +02:00
Linus Rath
30c4afb977
i18n: add missing translation keys
2026-04-21 17:42:52 +02:00
Linus Rath
1f60671886
fix: clean up unused imports and improve TOTP QR code rendering
2026-04-21 17:30:00 +02:00
Linus Rath
794001fdbd
feat: migrate Stalwart management API to JMAP x: methods (0.16)
...
Drops the 0.15 REST management API and routes all account/auth/crypto/
principal operations through Stalwart 0.16's schema-driven JMAP
endpoint via a single passthrough (/api/account/stalwart/jmap).
- New client helper `stalwartJmap` + typed `requireResult`
- account-security-store rewritten against x:AccountPassword, x:AppPassword,
x:AccountSettings, x:Account (with currentSecret for TOTP ops)
- Client-side TOTP setup via `otpauth`; server-generated app password
secrets shown once on create
- Admin check switched to /api/account permissions
(sysAccountQuery/sysTenantQuery/sysSystemSettingsGet)
- Removed sieve vacation-overwrite workaround (fixed upstream #1251 )
- Deleted old REST routes, StalwartClient, stale tests; added new
tests for passthrough + store
2026-04-21 17:29:23 +02:00
Linus Rath
9ad2facad3
Merge branch 'main' of https://github.com/bulwarkmail/webmail
2026-04-21 14:12:03 +02:00
Linus Rath
89d8282846
fix: include original attachments when forwarding an email #214
2026-04-21 13:58:02 +02:00
Denis Teyssier and Linus Rath
c3960a99be
fix: removed allow-same-origin to avoid anti-pattern permissions on iframe sandbox #209
2026-04-20 14:55:50 +02:00
Denis Teyssier and Linus Rath
e73ffa7449
fix: added sandbox allow-scripts to PDF file preview modal #209
2026-04-20 14:55:50 +02:00
Linus Rath
24c53e5ce7
fix: apply archive context-menu action to all selected emails # 212
2026-04-20 14:35:56 +02:00
Linus Rath
bc3b923945
fix: apply mobile toolbar spacing fix to email viewer action bar
2026-04-19 17:59:58 +02:00
Linus Rath
172d8267ef
fix: persist typed calendar participant on save without requiring Enter #206
2026-04-19 13:47:17 +02:00
Linus Rath
f162f1e3d4
feat: refresh JMAP on reload gestures, fix mobile bottom nav spacing
2026-04-19 13:43:44 +02:00
Linus Rath
6fa0029d0b
feat: add right-click context menu on calendar events
2026-04-18 13:46:49 +02:00
Linus Rath
440a4e919a
Revert "perf: make root HTML cacheable by dropping per-request CSP nonce"
...
This reverts commit 522bf6a019 .
2026-04-18 13:10:42 +02:00
Linus Rath
522bf6a019
perf: make root HTML cacheable by dropping per-request CSP nonce
2026-04-18 13:01:12 +02:00
Linus Rath
1689315c3a
feat: add setting to hide inline images from attachment list
2026-04-18 01:07:34 +02:00
Linus Rath
d4f7ae522e
fix: use cid references for inline images #163
2026-04-18 00:57:46 +02:00
Linus Rath
f05f70a9e5
fix: prevent XSS via quote injection in plain-text email linkifier
2026-04-18 00:35:21 +02:00
Linus Rath
8bdadc7ba3
fix: standardize punctuation
2026-04-16 19:07:42 +02:00
Linus Rath
d31b30ba4a
Merge branch 'dev'
2026-04-16 18:51:01 +02:00
Linus Rath
31eff96614
feat: Enhance external rule handling in Sieve parser and store #201
2026-04-16 17:22:52 +02:00
nesgarbo and Linus Rath
fa343e0768
fix: hide ICS attachments from email attachment list when invitation banner is shown
...
When an email contains a calendar invitation, the raw .ics MIME parts
(text/calendar, application/ics, application/icalendar) were showing
up in the attachment list alongside the calendar invitation banner,
which is confusing — the banner already provides the relevant UI.
Filter those MIME types out of the displayed attachment list whenever
the calendar invitation banner is active, reusing the existing
isCalendarMimeType utility from lib/calendar-invitation.ts.
2026-04-16 16:54:09 +02:00
Linus Rath
ad175d20e3
feat: enhance email deletion and spam handling with improved parameterization
2026-04-16 16:50:42 +02:00
nesgarbo and Linus Rath
195185dc52
feat: show app name and logo in PWA install prompt
...
Use runtime config (appName, appLogoLightUrl, appLogoDarkUrl, faviconUrl)
instead of the hardcoded 'Bulwark' string and download icon.
2026-04-15 11:25:16 +02:00
Linus Rath
f22699fe20
feat: add unified mailbox across accounts and sidebar icons toggle
2026-04-14 17:36:13 +02:00