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
Linus Rath
fae15f073e
fix: honor cookieSameSite admin config override #284
2026-05-14 21:49:37 +02:00
Linus Rath
c646c87030
fix: standardize punctuation in tooltips and comments across multiple locales and code files
2026-05-14 21:44:24 +02:00
Linus Rath
b4a76bc4d1
chore: expand demo fixtures with more emails, contacts, and portrait photos
2026-05-14 15:19:24 +02:00
Linus Rath
dfe886636b
fix: broaden body font for non Latin script rendering #265
2026-05-13 14:43:07 +02:00
Linus Rath
f499e87d2a
chore: update version to 1.6.5
2026-05-13 14:38:00 +02:00
Linus Rath
32fe871b70
fix: support HTTP basic auth in iCal subscription URLs #275
2026-05-13 14:27:54 +02:00
Linus Rath
aab19379e2
feat: route account avatars through shared Avatar component #278
2026-05-13 00:50:46 +02:00
Linus Rath
b46a1a69e8
chore: unblock pre-commit lint hook
2026-05-13 00:34:35 +02:00
Linus Rath
ea424cad7e
fix: honor admin-uploaded favicon in root metadata #274
2026-05-13 00:33:23 +02:00
Linus Rath
8b0e2052cf
fix: honor NEXT_PUBLIC_BASE_PATH in admin sidebar nav links #271
2026-05-12 16:10:29 +02:00
Linus Rath
c99934a92c
fix: update version to 1.6.4
2026-05-12 16:06:14 +02:00
Linus Rath
ce2731cd9d
fix: update types for cursor and toRemove
2026-05-12 16:04:46 +02:00
Linus Rath
f9f8af2f11
fix: preserve signature styling and reactivity in above-quote mode #272
2026-05-12 16:03:10 +02:00
Linus Rath
d8e2a10806
docs: update CONTRIBUTING.md
2026-05-11 20:41:04 +02:00
Linus Rath
869ee07ebc
chore: bump next to 16.2.6 for security advisories
2026-05-11 20:11:05 +02:00
Linus Rath
2ad2bb1e09
chore: update version to 1.6.4
2026-05-11 20:00:55 +02:00
Linus Rath
23bc31c661
i18n: add missing translation keys across 15 locales
2026-05-11 19:30:52 +02:00
Linus Rath
a2f76037a1
feat: update README and FEATURES.md
2026-05-11 19:24:32 +02:00
Linus Rath
9571f2e185
fix: skip upstream JMAP reverify for trusted URLs #237
2026-05-11 19:22:37 +02:00
Linus Rath
887b9c728c
feat: drag attachments out to local file system #267
2026-05-11 17:34:24 +02:00
Linus Rath
8c21f462c2
feat: add signature position to email behavior settings search
2026-05-11 17:07:24 +02:00
Linus Rath
5f3d2d3e4a
feat: signature above quoted text option #266
2026-05-11 17:05:59 +02:00
Linus Rath
4bce80b8ba
feat: show avatar in Focused list for compact density and above
2026-05-11 16:23:15 +02:00
Linus Rath
1d09f5a623
feat: align Focused list preview with other layout previews
2026-05-11 15:41:25 +02:00
Linus Rath
2c513129f2
feat: add Reading Pane at Bottom mail layout #262
2026-05-11 15:35:43 +02:00
Linus Rath
b3dc2e32b8
feat: implement prefetching of initial email data
2026-05-11 15:17:30 +02:00
Linus Rath
2d7e24b513
perf: parallelize login round-trips and drop redundant JMAP re-verify
2026-05-11 11:04:13 +02:00
Linus Rath
5b30bacf10
feat: redesign review step with grouped summary and advanced toggle
2026-05-10 01:09:00 +02:00
Linus Rath
fe937403f3
style: consistent notice cards for server probe results
2026-05-09 21:43:04 +02:00
Linus Rath
876ea370e4
feat: allow file uploads on the wizard branding step
2026-05-09 21:40:39 +02:00
Linus Rath
1dcdeeae86
style: consistent notice cards for server probe results
2026-05-09 18:12:43 +02:00
Linus Rath
01302a775c
feat: require explicit confirmation when JMAP probe finds no session
2026-05-09 17:52:44 +02:00
Linus Rath
76d78ae756
fix: drop redundant first-login banner about removing ADMIN_PASSWORD #222
2026-05-09 17:40:53 +02:00
Linus Rath
51745ea03d
feat: web setup wizard + admin config/state dir split ( #226 )
2026-05-09 17:37:41 +02:00
Linus Rath
7fa65796f0
fix: show account identity in switcher header instead of sending alias
2026-05-09 13:21:13 +02:00
Linus Rath
d09df7e8a3
fix: remove benchmark directory from .gitignore
2026-05-09 13:13:08 +02:00
Linus Rath
090399a308
chore: update version to 1.6.3
2026-05-08 21:10:21 +02:00
Linus Rath
c31a58af1a
i18n: add missing translation keys across 15 locales
2026-05-08 21:07:14 +02:00
Linus Rath
65aabb943c
fix: fall back when only truncation indicator remains in email preview
2026-05-08 20:29:16 +02:00
Linus Rath
9c8739c4bb
fix: preserve emoji colors in dark mode email viewer
2026-05-08 20:27:03 +02:00
Linus Rath
48f72be209
fix: preserve emoji colors in dark mode email viewer
2026-05-08 20:26:17 +02:00
Linus Rath
92fb0c63e9
fix: trim leading whitespace from email list preview
2026-05-08 20:19:25 +02:00
Linus Rath
55596556ef
feat: import .eml files via folder right-click menu
2026-05-08 20:12:33 +02:00
Linus Rath
abd63d124f
fix: add benchmark directory to ESLint ignore list
2026-05-08 19:56:21 +02:00
Linus Rath
562080b7a3
fix: request shareWith explicitly so calendar/address book shares survive a re-login #257
2026-05-08 19:53:32 +02:00
Linus Rath
41c9f4926c
fix: prevent white-on-white in dark mode for nested bgcolor containers
2026-05-08 02:49:58 +02:00
Linus Rath
e7e78072d4
fix: render plain-text-only emails as text, not HTML
2026-05-07 17:49:39 +02:00
Linus Rath
cd363b4840
fix: strip leading punctuation when computing avatar initials
2026-05-07 17:43:02 +02:00
Linus Rath
3a350c14a6
fix: hide files/contacts nav items when JMAP server lacks support
2026-05-07 17:21:47 +02:00