Linus Rath
|
537707d9ed
|
feat: include group inboxes in unified mailbox view #328
|
2026-05-23 16:01:22 +02:00 |
|
Linus Rath
|
afe1e5a67c
|
fix: restore blob: in object-src and frame-src CSP for PDF/HTML previews
|
2026-05-23 15:53:58 +02:00 |
|
Linus Rath
|
d13934c2a6
|
fix: match user-avatar treatment on quick reply
|
2026-05-23 15:35:10 +02:00 |
|
Linus Rath
|
acc90eb455
|
feat: add "Move to Trash and mark as read" delete action #323
|
2026-05-22 19:08:02 +02:00 |
|
Linus Rath
|
5aa6d7a2f0
|
docs: document OAUTH_ALLOW_PRIVATE_ENDPOINTS in env/config examples
|
2026-05-22 17:57:41 +02:00 |
|
Linus Rath
|
c46de636e0
|
fix: keep a gutter on bare-HTML emails on mobile
|
2026-05-22 17:47:24 +02:00 |
|
Linus Rath
|
63f2169ae7
|
fix: add OAUTH_ALLOW_PRIVATE_ENDPOINTS for split-DNS setups
|
2026-05-22 17:22:14 +02:00 |
|
Linus Rath
|
e843ef0ebb
|
fix: convert recurrenceRules to singular in batch create
|
2026-05-22 17:00:53 +02:00 |
|
Linus Rath
|
4b463f9691
|
fix: prefix hand-written URLs with basePath for subpath deployments
|
2026-05-22 16:38:55 +02:00 |
|
Linus Rath
|
58e4a3d117
|
feat: add post-export action setting (keep/archive/trash)
|
2026-05-22 15:36:15 +02:00 |
|
Linus Rath
|
e3f6ae874d
|
feat: add settings template for multi-email .zip filename
|
2026-05-22 15:30:15 +02:00 |
|
Linus Rath
|
52f5a5b42c
|
feat: support importing emails from .zip archives
|
2026-05-22 15:22:33 +02:00 |
|
Linus Rath
|
e7bded82fb
|
i18n: add missing translation keys across 16 locales
|
2026-05-22 15:09:51 +02:00 |
|
Linus Rath
|
3ac14ecf38
|
feat: add filename transform settings
|
2026-05-22 14:57:25 +02:00 |
|
Linus Rath
|
0dca019fe5
|
fix: stop URL-encoding drag-out filenames and preserve Unicode letters
|
2026-05-22 14:49:17 +02:00 |
|
Linus Rath
|
ca0d6805cf
|
feat: add Downloads settings tab with template editor for .eml and attachment filenames
|
2026-05-22 14:46:25 +02:00 |
|
Linus Rath
|
8bcb487442
|
feat: name dragged/exported .eml files as "date (from-to) subject" with ASCII-only chars
|
2026-05-22 14:28:36 +02:00 |
|
Linus Rath
|
0245ec67e1
|
feat: enhance email filename generation and sanitization for drag-and-drop functionality
|
2026-05-22 14:25:30 +02:00 |
|
Linus Rath
|
8810a63262
|
feat: drag emails out to file explorer as .eml
|
2026-05-22 14:04:52 +02:00 |
|
Linus Rath
|
d3778e6521
|
fix: handle malformed event dates in calendar route #316
|
2026-05-22 14:04:02 +02:00 |
|
Linus Rath
|
1fc6185002
|
chore: update version to 1.7.1
|
2026-05-22 12:22:03 +02:00 |
|
Linus Rath
|
4269d0589c
|
feat: collapse empty viewer pane and hide placeholder in Pro mode
|
2026-05-22 12:19:34 +02:00 |
|
Linus Rath
|
2b1b06abd6
|
fix: collapse empty viewer pane so mail list fills the space
|
2026-05-22 12:16:49 +02:00 |
|
Linus Rath
|
ac4a89120d
|
fix: preserve inline images when replying #163
|
2026-05-22 12:06:55 +02:00 |
|
Linus Rath
|
704a259432
|
feat: hide empty-state placeholder in email viewer pane
|
2026-05-22 12:04:40 +02:00 |
|
Linus Rath
|
1c02970ae1
|
fix: use canonical INBOX in Sieve filter paths #313
|
2026-05-22 11:51:25 +02:00 |
|
Linus Rath
|
66b2036e37
|
feat: expose PWA branding fields in admin Branding tab
|
2026-05-22 11:22:07 +02:00 |
|
Linus Rath
|
bd2ffab3bc
|
fix: resolve destination account id to local namespace in mailbox drop
|
2026-05-22 11:20:50 +02:00 |
|
Linus Rath
|
7142627cec
|
chore: update version to 1.7.0
|
2026-05-22 00:51:38 +02:00 |
|
Linus Rath
|
1e7d2d880c
|
i18n: add missing translation keys across 16 locales
|
2026-05-22 00:44:00 +02:00 |
|
Linus Rath
|
63efd724d2
|
fix: trust directory version on marketplace install/update
|
2026-05-22 00:20:00 +02:00 |
|
Linus Rath
|
ba4781910d
|
feat: marketplace update flow for installed plugins/themes
|
2026-05-22 00:11:10 +02:00 |
|
Linus Rath
|
08c85a42e1
|
chore: update version to 1.7.0
|
2026-05-21 23:47:31 +02:00 |
|
Linus Rath
|
fc5f6f43d6
|
feat: expose PWA, app identity, and extension directory keys in JSON config #312
|
2026-05-21 23:35:58 +02:00 |
|
Linus Rath
|
9b22ef810e
|
fix: allow adding contacts from mail recipient popover on mobile #306
|
2026-05-21 23:23:45 +02:00 |
|
Linus Rath
|
dbc0eea148
|
feat: group composer From dropdown by account in Pro shell
|
2026-05-21 23:07:02 +02:00 |
|
Linus Rath
|
e80412b6fd
|
feat: show contacts from all logged-in accounts in Pro shell
|
2026-05-21 22:32:17 +02:00 |
|
Linus Rath
|
2c825af689
|
fix: show avatars in calendar/address book sharing menu
|
2026-05-21 18:58:46 +02:00 |
|
Linus Rath
|
4cfee4f672
|
feat: split owned vs shared calendars per account in sidebar in Pro shell
|
2026-05-21 18:54:09 +02:00 |
|
Linus Rath
|
7076f1ded8
|
feat: show calendars from all logged-in accounts in Pro shell
|
2026-05-21 18:48:55 +02:00 |
|
Linus Rath
|
9fbcdf7a5f
|
fix: hide mail sidebar header in Pro shell
|
2026-05-21 18:19:30 +02:00 |
|
Linus Rath
|
7f35d792b2
|
fix: load globals.css and Geist font in plugin sandbox iframe
|
2026-05-21 18:15:00 +02:00 |
|
Linus Rath
|
c9cda3e203
|
fix: parent navigation detaching account in Pro shell file browser
|
2026-05-21 18:06:59 +02:00 |
|
Linus Rath
|
3540bf42d9
|
fix: use Avatar component in Pro shell file account picker
|
2026-05-21 18:05:03 +02:00 |
|
Linus Rath
|
e6782e61a8
|
fix: sync plugin slot iframe height with reported content height
|
2026-05-21 17:59:24 +02:00 |
|
Linus Rath
|
33e655bcce
|
feat: narrow-pane sidebars and cross-account file picker in Pro shell
|
2026-05-21 17:54:03 +02:00 |
|
Linus Rath
|
15a67a14b3
|
fix: parent dir navigation jumping to root in file browser
|
2026-05-21 17:27:49 +02:00 |
|
Linus Rath
|
b48eef2189
|
feat: hide files back button in Pro shell
|
2026-05-21 17:25:01 +02:00 |
|
Linus Rath
|
280f5bc675
|
feat: support cross-account email moves in Pro shell
|
2026-05-21 17:22:31 +02:00 |
|
Linus Rath
|
1756f5ac1c
|
feat: enable search in unified mailbox in pro mode
|
2026-05-21 17:12:06 +02:00 |
|
Linus Rath
|
c9435f7580
|
feat: always show unified mailbox in Pro shell
|
2026-05-21 17:01:34 +02:00 |
|
Linus Rath
|
426d344aa8
|
feat: multi-account mail sidebar and client routing for Pro shell
|
2026-05-21 16:52:03 +02:00 |
|
Linus Rath
|
ed90e096b5
|
feat: add per-account mailbox cache for Pro shell data layer
|
2026-05-21 16:11:26 +02:00 |
|
Linus Rath
|
eb6e5f589e
|
fix: hide redundant account switcher in mail sidebar inside Pro shell
|
2026-05-21 15:54:33 +02:00 |
|
Linus Rath
|
eca837962c
|
fix: hide "Back to Mail" in settings when Pro mode is on
|
2026-05-21 15:49:09 +02:00 |
|
Linus Rath
|
b75bbaa517
|
feat: auto-redirect to Pro shell when proInterface is on
|
2026-05-21 15:47:05 +02:00 |
|
Linus Rath
|
9763ffa2a3
|
fix: keep proInterface per-device instead of syncing it
|
2026-05-21 15:39:02 +02:00 |
|
Linus Rath
|
d854b903e0
|
fix: anchor unmatched URLs into main so 404 renders
|
2026-05-20 23:59:10 +02:00 |
|
Linus Rath
|
5008857880
|
fix: respect server-resolved locale on first visit #309
|
2026-05-20 23:53:44 +02:00 |
|
Linus Rath
|
628966d3b5
|
fix: split app into (main)/(sandbox) route groups so plugin iframe hydrates properly
|
2026-05-20 23:41:49 +02:00 |
|
Linus Rath
|
d45c8ef511
|
feat: list and reorder logged-in accounts in settings #282
|
2026-05-20 19:22:44 +02:00 |
|
Linus Rath
|
ba90ec1f7a
|
feat: warn when setup JMAP URL points at a local-only host
|
2026-05-20 19:11:46 +02:00 |
|
Linus Rath
|
5023d31202
|
fix: defer setup wizard HTTP detection to avoid hydration mismatch
|
2026-05-20 19:05:11 +02:00 |
|
Linus Rath
|
1c44f59ba1
|
feat: allow setup wizard over plain HTTP with dismissable warning gate
|
2026-05-20 19:01:46 +02:00 |
|
Linus Rath
|
433a63bf1a
|
fix: normalize malformed contact photo data URIs #307
|
2026-05-20 18:42:12 +02:00 |
|
Linus Rath
|
de847b9e9f
|
i18n: add missing translation keys across 16 locales
|
2026-05-20 18:30:50 +02:00 |
|
Linus Rath
|
d530d9614b
|
fix: serialize draft autosave with send to stop replies stalling in Drafts #303
|
2026-05-19 23:33:11 +02:00 |
|
Linus Rath
|
9a92271f6f
|
fix: prevent mobile dual-scroll and use full width for mail content
|
2026-05-19 14:38:28 +02:00 |
|
Linus Rath
|
97ddf935a8
|
fix: mobile handoff flow for OAuth authentication
|
2026-05-19 00:45:35 +02:00 |
|
Linus Rath
|
973ce1e5bd
|
feat: add mobile handoff page and JMAP authentication verification
|
2026-05-19 00:05:40 +02:00 |
|
Linus Rath
|
7003020855
|
fix: prevent duplication of Bulwark rules with literal braces in values
|
2026-05-18 23:58:21 +02:00 |
|
Linus Rath
|
5cdc5997af
|
feat: pro: pane-aware responsiveness, scoped sidebar overlay, stable pane keys
|
2026-05-18 20:42:21 +02:00 |
|
Linus Rath
|
c3b4707f85
|
feat: pro: drop top/bottom split, keep side-by-side only
|
2026-05-18 19:51:43 +02:00 |
|
Linus Rath
|
2b3094a4ef
|
feat: pro: unify split panes under a single tab bar
|
2026-05-18 19:39:57 +02:00 |
|
Linus Rath
|
ecd0467ffa
|
fix: stop pulling node:dns into client bundle via OAuth discovery
|
2026-05-18 19:31:38 +02:00 |
|
Linus Rath
|
43ac0725ce
|
feat: pro: drag tabs to reorder, drag to edge to split
|
2026-05-18 19:30:54 +02:00 |
|
Linus Rath
|
98879802ae
|
feat: add Pro interface
|
2026-05-18 19:17:39 +02:00 |
|
Linus Rath
|
cf9292262d
|
feat: pluggable reply/forward quote header #295
|
2026-05-18 17:53:23 +02:00 |
|
Linus Rath
|
3d2ed71f3a
|
feat: support multiple flexible event reminders #170
|
2026-05-18 17:31:44 +02:00 |
|
Linus Rath
|
dcd2f4b079
|
fix: wire orphaned admin policy gates and surface OAuth scope settings
|
2026-05-18 16:47:20 +02:00 |
|
Linus Rath
|
b2d24670ff
|
fix: scope iCal subscriptions per JMAP account and fix refresh/clear
|
2026-05-18 16:39:02 +02:00 |
|
Linus Rath
|
fa261fecfd
|
fix: omit empty cc/bcc from Email/set so server does not emit bare Cc: header #301
|
2026-05-18 16:36:45 +02:00 |
|
Linus Rath
|
40f36baf94
|
fix: iCal subscription refresh, rollback, and URL normalization
|
2026-05-18 16:31:16 +02:00 |
|
Linus Rath
|
400703154e
|
fix: ignore plugin-supplied target in ui.openExternalUrl to block host-frame hijack
|
2026-05-18 16:18:00 +02:00 |
|
Linus Rath
|
3ceada7b8a
|
fix: tighten HTML sanitization at plain-text email + signature + i18n render sites
|
2026-05-18 16:07:34 +02:00 |
|
Linus Rath
|
eb0643d887
|
fix: pin parent origin in iframe-bridge to block cross-frame postMessage
|
2026-05-18 16:01:29 +02:00 |
|
Linus Rath
|
1fc670138b
|
fix: update bundleHash to full SHA-256 for integrity verification and migrate legacy hashes
|
2026-05-18 15:57:52 +02:00 |
|
Linus Rath
|
313a1fcce9
|
fix: stop persisting S/MIME passphrases in sessionStorage
|
2026-05-18 15:32:04 +02:00 |
|
Linus Rath
|
7efd8d59bf
|
fix: escape print-window fields and re-sanitize body to block XSS
|
2026-05-18 13:24:52 +02:00 |
|
Linus Rath
|
c2eb2c081b
|
fix: gate admin routes against cross-origin CSRF
|
2026-05-18 13:21:01 +02:00 |
|
Linus Rath
|
b299a0b602
|
fix: validate plugin/theme id in marketplace install to block path traversal
|
2026-05-18 13:03:49 +02:00 |
|
Linus Rath
|
f275fbe2e4
|
fix: bind stalwart auth context to credential, not cookie-claimed username
|
2026-05-18 13:00:40 +02:00 |
|
Linus Rath
|
f134766fd1
|
fix: validate OAuth discovery endpoints against SSRF
|
2026-05-18 12:53:43 +02:00 |
|
Linus Rath
|
6ebf720688
|
fix: block script-bearing MIME types from inline attachment preview
|
2026-05-18 12:47:44 +02:00 |
|
Linus Rath
|
b1eb2b3c9b
|
fix: correct regex for valid API post path validation
|
2026-05-18 12:44:54 +02:00 |
|
Linus Rath
|
48aa607b56
|
feat: lock down plugin runtime in sandbox + signing + approval
|
2026-05-18 12:44:23 +02:00 |
|
Linus Rath
|
088810bd20
|
feat: harden plugin sandbox and migrate in-tree plugins
|
2026-05-18 12:17:54 +02:00 |
|
Linus Rath
|
e16f572252
|
fix: use plugin slot offer snapshots for useSyncExternalStore
|
2026-05-18 11:00:05 +02:00 |
|
Linus Rath
|
9f312aa556
|
feat: sandbox plugins in null-origin iframes with postMessage RPC
|
2026-05-18 10:50:49 +02:00 |
|
Linus Rath
|
c5ac68e137
|
fix: prevent plugin config leak to non-admin users
|
2026-05-18 10:24:29 +02:00 |
|