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
Linus Rath
ed6b5d5f33
fix: clear identity signature fields when emptied
2026-05-18 00:53:54 +02:00
Linus Rath
7a72903632
feat: show size cap on identity signature fields
2026-05-18 00:34:01 +02:00
Linus Rath
92127e2f00
fix: allow table-based layouts in HTML signature sanitizer
2026-05-18 00:24:08 +02:00
Linus Rath
be5ff96e4d
fix: toggle recipient popover when clicking name again
2026-05-17 23:45:57 +02:00
Linus Rath
1f47b7a6a9
fix: remove white halo around photo avatars
2026-05-17 23:44:13 +02:00
Linus Rath
8c5aec9ca4
chore: update version to 1.6.7
2026-05-17 18:17:13 +02:00
Linus Rath
375220298d
i18n: add missing translation keys across 16 locales
2026-05-17 18:12:17 +02:00
Linus Rath
452976ed95
fix: apply dark background to email content wrapper in dark mode
2026-05-17 17:40:35 +02:00
Linus Rath
243a2adfbf
fix: improve dark mode background colors in email viewer
2026-05-17 17:39:49 +02:00
Linus Rath
1ba4a13353
fix: show "no body content" instead of infinite skeleton for bodyless emails
2026-05-17 17:33:06 +02:00
Linus Rath
5de12dfb79
perf: speed up calendar invitation banner load
...
Parallelize ICS parse with raw blob fetch, render the banner as soon
as parsing returns instead of awaiting the existing-event lookup, and
filter that lookup by UID server-side instead of fetching every event
on the calendar.
2026-05-17 17:28:10 +02:00
Linus Rath
689d646c57
fix: show contact popup when clicking sender name in email header
2026-05-17 17:19:43 +02:00
Linus Rath
49cd7f8130
feat: show details toggle and panel on mobile sender info
2026-05-17 17:15:19 +02:00
Linus Rath
4545e212f4
fix: align quick reply with mobile bottom toolbar
2026-05-17 17:06:30 +02:00
Linus Rath
b1f4f6eae0
fix: pin quick reply to bottom for short emails
2026-05-17 16:56:54 +02:00
Linus Rath
9a431a873b
fix: close attachment preview when clicking outside content
2026-05-17 16:49:13 +02:00
Linus Rath
bb7e1c4538
fix: per-account push subscriptions so multi-account notifications work #298
2026-05-16 22:50:01 +02:00
Linus Rath
356abcfc2d
fix: redact sensitive config secrets from admin API response
2026-05-16 22:48:06 +02:00
Linus Rath
3099b4801e
fix: sandbox thread email HTML in srcDoc iframe with CSP meta
2026-05-16 20:49:59 +02:00
Linus Rath
fc641e94ac
fix: carry configSchema + settingsSchema through marketplace install
2026-05-16 19:51:59 +02:00
Linus Rath
0e758409ee
fix: prevent long addresses from overflowing email details columns #297
2026-05-16 19:47:03 +02:00
Linus Rath
8c93941d8d
feat: render app-top-banner slot on every authenticated page
2026-05-16 19:39:45 +02:00
Linus Rath
4221c9a50f
fix: strip Stalwart master-user '%' suffix from displayed account
2026-05-16 19:07:10 +02:00
Linus Rath
3a559479bd
fix: make impersonation cookies session-only
2026-05-16 18:59:46 +02:00
Linus Rath
482493a10d
fix: register app-top-banner in plugin-store SLOT_NAMES
2026-05-16 18:53:06 +02:00
Linus Rath
0e1036eb49
fix: adopt orphan session cookie on first SPA load
2026-05-16 18:45:30 +02:00
Linus Rath
349406723c
fix: use relative Location header in redirect
2026-05-16 18:33:44 +02:00
Linus Rath
997bedc91b
feat: allow admin password overwrite during setup recovery
2026-05-16 18:21:48 +02:00
Linus Rath
307e6d5d34
fix: warn + block install when app version is below plugin's minAppVersion
2026-05-16 18:11:52 +02:00
Linus Rath
ca1108f455
feat: master-user impersonation route + app-top-banner plugin slot
2026-05-16 17:59:07 +02:00
Linus Rath
0ff88f36ed
Merge branch 'main' of https://github.com/bulwarkmail/webmail
2026-05-16 16:35:43 +02:00
Linus Rath
285b4e349c
fix: add outputFileTracingExcludes to optimize Turbopack memory tracing
2026-05-16 16:35:06 +02:00
Linus Rath
2b4ebb1fbb
feat: add HTTPS requirement warning in setup wizard
2026-05-16 16:31:12 +02:00
Linus Rath
f39366b470
fix: read OAUTH_SCOPES at runtime instead of build time
2026-05-15 20:37:00 +02:00
Linus Rath
b725000f4d
feat: implement vCard 4.0 parsing and generation support
2026-05-15 20:10:18 +02:00
Linus Rath
105194a8b9
chore: update version to 1.6.6
2026-05-15 15:20:07 +02:00
Linus Rath
8dbb538c98
feat: sync onboarding status across devices #285
2026-05-15 15:09:42 +02:00
Linus Rath
e435356c53
Merge branch 'main' of https://github.com/bulwarkmail/webmail
2026-05-15 14:49:58 +02:00
Linus Rath
6f9982540c
feat: add icons for shared, important, memos, scheduled, snoozed folders #288
2026-05-15 14:48:39 +02:00
Linus Rath
d5dddba6df
fix: hide Files settings/nav when filesEnabled policy is off #291
2026-05-15 14:41:57 +02:00
Linus Rath
d1a0667c79
i18n: clean up Danish locale wiring and sort language lists 286
2026-05-15 14:31:24 +02:00