Linus Rath
e738941950
Merge branch 'main' of https://github.com/bulwarkmail/webmail
2026-08-01 12:28:21 +02:00
Linus Rath
1890cade08
fix: surface underlying network error cause in JMAP passthrough failures
2026-08-01 11:47:16 +02:00
Linus Rath
e659fe3d38
feat: allow contact cards for organizations #701
2026-07-30 19:44:36 +02:00
Linus Rath
348e032dce
fix: files show creation date instead of modification date #700
2026-07-30 19:41:02 +02:00
Linus Rath
a6c15b8ad6
fix: empty folder stopped after 500 emails #711
2026-07-30 19:40:25 +02:00
Linus Rath
5a2bc6b671
Merge branch 'main' of https://github.com/bulwarkmail/webmail
...
# Conflicts:
# app/api/dev-jmap/[...path]/route.ts
2026-07-30 19:17:43 +02:00
Linus Rath
59bc7fd64c
fix: reply to own thread message addresses original recipients #703
2026-07-30 19:02:39 +02:00
Linus Rath
aa7a814b86
test: rewrite mock email content
2026-07-30 18:44:53 +02:00
Linus Rath
1cdbf75270
fix: use full tag path in drag-drop toasts, fresh email in context menu markAsRead
...
Nested tag toasts from drag-and-drop only showed the leaf name for
non-root tags, contradicting the comment above it and making two
same-named leaves under different parents (e.g. Personal/Receipts vs
Work/Receipts) indistinguishable in the toast.
The context menu's markAsRead handler was the one action left reading
the stale contextMenu.data instead of the live-refreshed
contextMenuEmail introduced alongside it, so it could act on outdated
email state while every sibling handler was already updated.
2026-07-30 18:39:49 +02:00
Linus Rath
9c04950a94
docs: use sentence case for headings
2026-07-25 17:46:48 +02:00
Linus Rath
934967b9df
docs: document remaining env vars in env templates
2026-07-25 17:46:12 +02:00
Linus Rath
755201c92a
docs: fix facts and rewrite tone
2026-07-25 17:38:55 +02:00
Linus Rath
7511d8ea78
chore: update version to 1.7.8
2026-07-22 19:43:09 +02:00
Linus Rath
959d4bd6ce
fix: assign uid to contact cards on creation #644
2026-07-22 19:18:59 +02:00
Linus Rath
b7c8cd999e
feat: collapse quoted reply text behind a "..." toggle #480
2026-07-22 19:17:23 +02:00
Linus Rath
813185e58d
test: fix broken suites
2026-07-22 18:56:09 +02:00
Linus Rath
3f22a3323a
i18n: add missing translation keys across 22 locales
2026-07-22 18:45:22 +02:00
Linus Rath
0e4efb5a2a
fix: honor "Show time in month view" on mobile instead of forcing dots #666
2026-07-22 18:21:02 +02:00
Linus Rath
b354319b82
feat: support HTML body in vacation responder
2026-07-22 17:56:05 +02:00
Linus Rath
5a8c69dac2
fix: insert mail template at caret in replies instead of prepending #539
2026-07-22 17:53:40 +02:00
Linus Rath
24056e4698
fix: eliminate full-screen flash when switching accounts
2026-07-22 17:48:39 +02:00
Linus Rath
5818e60401
fix: prevent loading flash when switching to a cached account
2026-07-22 17:42:48 +02:00
Linus Rath
7beaf991e8
fix: recognize canonicalized login usernames in account-switch guard
2026-07-22 17:37:33 +02:00
Linus Rath
5105e000f5
feat: add message-list category tabs
2026-07-22 17:22:20 +02:00
Linus Rath
de55fb6b73
fix: honor part-type fallback when quoting replies #649
2026-07-21 23:27:40 +02:00
Linus Rath
a909593dda
fix: detect typing inside the QuotedHtml shadow island via composedPath #654
2026-07-21 23:26:51 +02:00
Linus Rath
4ad9267a2d
chore: bump dompurify to 3.4.12 and next-intl to 4.13.3, npm audit fix for dev deps
2026-07-21 23:23:14 +02:00
Linus Rath
4d9d992f3f
chore: update package-lock.json metadata
2026-07-21 23:05:21 +02:00
Linus Rath
162e420a1f
fix: stop HELO spf=none from downgrading a MAIL FROM spf=pass #650
2026-07-21 23:03:34 +02:00
Linus Rath
f749ee1f2a
fix: preserve POST across redirects in Stalwart JMAP passthrough #627
2026-07-16 22:51:07 +02:00
Linus Rath
4a4950c3e5
Fix: keep signature when inserting a template #621
2026-07-16 20:13:07 +02:00
Linus Rath
739b72d251
Merge pull request #509 from hildebrandttk/feat/unified-mailbox-account-scope
...
Feat/unified mailbox account scope
Rework the sidebar "All accounts" into an account-bounded "Unified Mailbox"
by default, with cross-account merging as an opt-in (admin-gated) sub-option.
The standalone per-account "All Mail" virtual folder is folded into the unified
All mail / Unread / Starred entries.
Conflict resolution notes:
- stores/settings-store.ts: both main and this branch independently added a
per-account default-identity (#507 ) migration at different versions (main v6,
branch v7). Merged migration is version 7 using the refactored migrateSettings
function; the unified-mailbox rework is guarded at `version < 7` so users who
stopped at main's interim v6 identity bump still receive it, while the #507
identity-map coercion stays at `version < 6` so their populated map is kept.
- stores/auth-store.ts: kept main's applyPreferredIdentity (superset with the
pre-#507 legacy migration).
- stores/email-store.ts: removed the ALL_MAIL_MAILBOX_ID paths (folded into the
unified views) while preserving main's plugin hooks (onSearchResults /
onEmailsFetched); adopted advancedSearchCrossViewEmails for advanced cross-view
search.
- components/settings/layout-settings.tsx: kept main's faviconUnreadBadge setting
alongside the new unifiedCrossAccount toggle.
- integration/: union-merged the two independently-authored suites - branch suite
is authoritative (matches new behavior) with main's shared-identity (#569 ) group
infrastructure preserved.
- components/email/email-composer.tsx: dropped a duplicate data-testid attribute
introduced by the auto-merge.
2026-07-16 19:57:51 +02:00
Linus Rath
682e47c970
Merge branch 'main' of https://github.com/bulwarkmail/webmail
2026-07-16 18:08:40 +02:00
Linus Rath
a6d8671306
Fix: render email body on DOM parse, not iframe load #635
2026-07-16 18:08:14 +02:00
Linus Rath
fa31933922
chore: update version to 1.7.7
2026-07-09 16:25:12 +02:00
Linus Rath
d3f77ef9cf
feat: add plugin ui.rerenderEmail API and restyle read-receipt banner
2026-07-09 16:04:33 +02:00
Linus Rath
5ccba83129
Merge branch 'main' of https://github.com/bulwarkmail/webmail
...
# Conflicts:
# lib/plugin-sandbox/host-api.ts
2026-07-09 14:57:36 +02:00
Linus Rath
2cb74c0186
i18n: use example.com in email placeholder strings
2026-07-09 14:54:04 +02:00
Linus Rath
9ab7339320
feat: add plugin ui.prompt dialog and first-class settings-section tabs
2026-07-09 14:51:17 +02:00
Linus Rath
782974ecdb
fix: load trusted senders address book on settings page so count isn't 0
2026-07-09 14:01:05 +02:00
Linus Rath
c47137fb49
feat: enable trusted-senders address book sync by default when contacts are available
2026-07-09 13:59:52 +02:00
Linus Rath
38313639ed
fix: use callable .get to detect Headers in pickRequestHost
2026-07-09 13:51:12 +02:00
Linus Rath
e933800792
fix: store event organizer as owner-only to prevent duplicate ORGANIZER/ATTENDEE
2026-07-09 13:45:04 +02:00
Linus Rath
60a1cc670c
fix: apply per-domain favicon override in root metadata #585
2026-07-09 13:30:44 +02:00
Linus Rath
8904d724bb
fix: hide Files when account lacks filenode capability #563
2026-07-07 23:59:19 +02:00
Linus Rath
c7d551f185
fix: attachment reminder ignores quoted text on reply/forward #570
2026-07-07 23:54:50 +02:00
Linus Rath
6470fa86f0
Merge branch 'main' of https://github.com/bulwarkmail/webmail
2026-07-07 23:44:34 +02:00
Linus Rath
8647d709ff
fix: only commit recipient on Space when input is a valid email #571
2026-07-07 23:43:54 +02:00
Linus Rath
e066698938
fix: strike through cancelled events and mute their reminders #572
2026-07-07 23:26:36 +02:00
Linus Rath
c3a97de62f
fix: use calendarAddress/organizerCalendarAddress for scheduling, drop retired sendTo/replyTo #500
2026-07-07 23:18:05 +02:00
Linus Rath
29283282d5
Merge branch 'main' of https://github.com/bulwarkmail/webmail
2026-07-07 20:36:05 +02:00
Linus Rath
db2c642d74
fix: storage quota not shown with Stalwart #577
2026-07-07 20:35:37 +02:00
Linus Rath
9930d19ba4
fix: keep advanced search filters applied when switching folders #553
2026-07-04 15:21:11 +02:00
Linus Rath
2704d5dc23
fix: clone source when setup.sh runs detached from a checkout #518
2026-06-28 23:31:32 +02:00
Linus Rath
2f5b133000
chore: update version to 1.7.6
2026-06-28 20:47:39 +02:00
Linus Rath
1f21a5213f
fix: hide server scheduled folder when virtual one is shown #495
2026-06-28 20:36:32 +02:00
Linus Rath
d4c066622b
i18n: add missing translation keys across 19 locales
2026-06-28 20:35:23 +02:00
Linus Rath
e141abc849
feat: add option to hide total message count on folders ( #498 )
2026-06-28 20:31:35 +02:00
Linus Rath
1f4afe082b
fix: show all built-in themes in admin theme controls #496
2026-06-28 20:31:00 +02:00
Linus Rath
e0747c12ee
fix: send calendar invites by setting organizerCalendarAddress
2026-06-28 20:27:23 +02:00
Linus Rath
f90cd6abc4
fix: sync default identity (preferredPrimaryId) to server settings #507
2026-06-28 20:12:54 +02:00
Linus Rath
63e087f3ef
fix: support MFA login via structured auth endpoint
2026-06-28 19:53:08 +02:00
Linus Rath
f8b8e0b108
refactor: move S/MIME to generic crypto plugin hooks
2026-06-28 19:13:02 +02:00
Linus Rath
512adab7e3
feat: add privileged same-origin plugin tier + crypto API surface
2026-06-28 16:51:42 +02:00
Linus Rath
4cdc15fc3c
chore: update version to 1.7.6
2026-06-25 01:06:51 +02:00
Linus Rath
5e67671f57
Merge branch 'main' of https://github.com/bulwarkmail/webmail
2026-06-25 01:05:00 +02:00
Linus Rath
155d99a069
feat: add plugin hooks for email details, headers, and source
2026-06-25 01:04:26 +02:00
Linus Rath
de56229ef2
chore: update version to 1.7.5
2026-06-24 20:06:03 +02:00
Linus Rath
1ff23790ae
Merge branch 'main' of https://github.com/bulwarkmail/webmail
2026-06-24 19:56:15 +02:00
Linus Rath
de68d68fb7
feat: add "New address book" creation UI #415
2026-06-24 19:53:41 +02:00
Linus Rath
f285a2bd64
fix: add missing fa locale to client IntlProvider messages map
2026-06-24 19:40:10 +02:00
Linus Rath
84b6d0fd8b
i18n: add missing translation keys across 19 locales
2026-06-24 19:36:55 +02:00
Linus Rath
f972068143
fix: localize special-folder names by JMAP role #404
2026-06-24 19:32:13 +02:00
Linus Rath
7882b254a0
fix: disable iMIP scheduling on calendar import #411
2026-06-24 19:29:56 +02:00
Linus Rath
ae5d397512
feat: add "Download all" button to bundle attachments into a zip #466
2026-06-24 18:46:41 +02:00
Linus Rath
7a022596c3
feat: add option to disable calendar
2026-06-24 18:39:38 +02:00
Linus Rath
8c575e8ed8
fix: load mailboxes in Filters when opened directly #485
2026-06-24 18:20:52 +02:00
Linus Rath
85fbab9eb4
fix: surface server errors on password change and TOTP toggle
2026-06-24 18:02:18 +02:00
Linus Rath
1119d8ed73
fix: strip display names from EmailSubmission envelope addresses
2026-06-24 17:01:51 +02:00
Linus Rath
32f0a67dbc
fix: gate Send-now toolbar label, translate send_now across locales
2026-06-24 16:52:36 +02:00
Linus Rath
cd247e9c47
Merge remote-tracking branch 'origin/main' into feat/all-mail-cross-account-views
...
# Conflicts:
# stores/settings-store.ts
2026-06-24 16:05:00 +02:00
Linus Rath
3d3ad8f0ef
Merge branch 'main' of https://github.com/bulwarkmail/webmail
2026-06-22 00:10:13 +02:00
Linus Rath
d0ed4b4dfe
fix: block remaining email tracking vectors #457
2026-06-22 00:09:09 +02:00
Linus Rath
52eacf87b9
ix: reap only relay-confirmed-dead leftover push subscriptions
2026-06-17 09:11:29 +02:00
Linus Rath
0872d3dc8d
chore: update version to 1.7.4
2026-06-15 23:28:20 +02:00
Linus Rath
1f889b0965
Merge branch 'main' of https://github.com/bulwarkmail/webmail
2026-06-15 23:16:10 +02:00
Linus Rath
0b9fe5451f
fix: preserve line breaks in generated text/plain alternative #421
2026-06-15 23:15:04 +02:00
Linus Rath
c51c3655d5
feat: add "All Mail" view
2026-06-15 18:42:23 +02:00
Linus Rath
404a1e847c
fix: move "Plain Text Only" setting from Reading to Composing #422
2026-06-15 17:39:18 +02:00
Linus Rath
dcea4fdd5e
feat: show recipient address in chip drag preview
2026-06-15 15:28:03 +02:00
Linus Rath
701f96adb3
Merge branch 'main' of https://github.com/bulwarkmail/webmail
2026-06-15 15:23:09 +02:00
Linus Rath
b5f15dfdb7
i18n: add missing translation keys across 17 locales
2026-06-15 15:18:47 +02:00
Linus Rath
798a33495e
refactor: remove JMAP status from admin dashboard
2026-06-14 17:15:52 +02:00
Linus Rath
4c6c1aab60
feat: manage shared/group account settings from Accounts page
2026-06-14 17:05:29 +02:00
Linus Rath
848ed9774d
feat: show avatars in recipient autocomplete suggestions
2026-06-14 14:54:27 +02:00
Linus Rath
b32e102ff9
feat: include directory users in recipient autocomplete
2026-06-14 14:52:13 +02:00
Linus Rath
e8feb11983
feat: add telemetry to web setup wizard
2026-06-14 14:35:48 +02:00
Linus Rath
3e12fca517
fix: make telemetry opt-in
2026-06-14 14:31:26 +02:00
Linus Rath
8df483d8c7
fix: don't send connected-account key as JMAP accountId when sharing files #408
2026-06-12 00:36:45 +02:00
Linus Rath
1e63e2469a
fix: strip build-time basePath from router.push redirects after login #390
2026-06-12 00:23:00 +02:00