Linus Rath
32660ca724
Merge branch 'main' of https://github.com/bulwarkmail/webmail
2026-08-29 12:31:46 +02:00
Linus Rath
4fe5701b3b
feat: default sidebar apps for all users #931
2026-08-29 12:31:17 +02:00
Linus Rath
3ef4695191
Clean up README.md formatting
...
Removed extra lines and cleaned up README formatting.
2026-08-29 11:55:01 +02:00
Linus Rath
37818e0e00
Remove Installer section from README
...
Removed the Installer section detailing the web-based setup wizard and its features.
2026-08-29 11:54:50 +02:00
Linus Rath
d800689924
feat: use Stalwart synthetic ids for recurring occurrences #140
2026-08-29 11:03:48 +02:00
Kuan-Chieh Huang
f1736b63c9
fix(i18n): preserve locale cookie precedence
2026-08-29 13:04:25 +08:00
Kuan-Chieh Huang
9fab1d1f4a
fix(i18n): normalize Chinese proxy locale detection
2026-08-29 11:44:40 +08:00
Kuan-Chieh Huang
5741e7bc65
feat(i18n): add Traditional Chinese (Taiwan) locale
2026-08-29 10:29:59 +08:00
Linus Rath
cc8d7d78ea
Merge pull request #829 from larstobi/feat/norwegian-bokmal
...
feat(i18n): add Norwegian Bokmål locale
2026-08-28 19:56:01 +02:00
Lars Tobias Skjong-Børsting
1ab97b3eea
fix(i18n): sync Norwegian locale with main
2026-08-28 19:33:55 +02:00
Lars Tobias Skjong-Børsting
7a80346dd1
fix(i18n): align Norwegian terminology
2026-08-28 19:31:22 +02:00
Lars Tobias Skjong-Børsting
65b50ea3e0
fix(i18n): normalize Norwegian ellipses
2026-08-28 19:31:22 +02:00
Lars Tobias Skjong-Børsting
54e71174d2
Apply suggestions from code review
...
Co-authored-by: Lars Tobias Skjong-Børsting <larstobi@relatime.no >
2026-08-28 19:31:22 +02:00
Lars Tobias Skjong-Børsting
8135ae076d
fix(i18n): remove punctuation from Norwegian weekday abbreviations
2026-08-28 19:31:22 +02:00
Lars Tobias Skjong-Børsting
a8ebd3fa8f
fix(i18n): refine Norwegian Bokmål translations
2026-08-28 19:31:21 +02:00
Lars Tobias Skjong-Børsting
135d34d760
fix(i18n): polish Norwegian Bokmål translations
2026-08-28 19:31:21 +02:00
Lars Tobias Skjong-Børsting
bf92885fc5
refactor(i18n): remove Norwegian locale alias
2026-08-28 19:31:21 +02:00
Lars Tobias Skjong-Børsting
b34d22d78b
fix(i18n): map Norwegian locale alias to Bokmål
2026-08-28 19:31:21 +02:00
Lars Tobias Skjong-Børsting
a3ede003a1
feat(i18n): add Norwegian Bokmål locale
2026-08-28 19:31:21 +02:00
Michael Richter
9b23b99cc1
fix: smaller margin for PWA icons #883
2026-08-28 15:31:42 +02:00
Linus Rath
5dcef717db
Change vulnerability report email address
...
Updated the contact email for reporting vulnerabilities.
2026-08-26 23:32:29 +02:00
Linus Rath
19756e4337
fix: pin resolved IP for stored custom JMAP endpoints and branding URLs
2026-08-26 23:02:19 +02:00
Linus Rath
2f1192bb32
chore: update version to 1.9.2
1.9.2
2026-08-26 22:17:07 +02:00
Linus Rath
3288589e52
fix: pin resolved IP at connect time to block DNS-rebinding SSRF (GHSA-24w9-8r42-8jwm)
2026-08-26 22:11:06 +02:00
Linus Rath
4bf3a3f8bb
feat: re-sync existing push registrations on app start
2026-08-26 21:56:58 +02:00
Linus Rath
a1ed482a6e
test: type expected emailPush fixture so urgency matches EmailPushConfig
2026-08-26 21:47:39 +02:00
Linus Rath
63fa2d2d93
fix: stop notifying for spam by using the JMAP emailPush delivery filter
2026-08-26 21:45:12 +02:00
Linus Rath
b1271827e8
chore: update version to 1.9.1
1.9.1
2026-08-26 19:40:16 +02:00
Linus Rath
ccf199f7ed
Merge branch 'main' of https://github.com/bulwarkmail/webmail
2026-08-26 19:29:48 +02:00
Linus Rath
67be0446e3
fix: forward every request header from the proxy so Next 16.3's RSC hash check stops 307-looping navigations #919
2026-08-26 19:28:31 +02:00
bitfactory
79e8bbf983
fix(sw): focus the client before navigating on notification click
...
Clicking a push notification on Android closed the notification and did
nothing: the app never came to the front.
handleNotificationClick navigates an existing client and then focuses it:
if ("navigate" in client && targetUrl) {
await client.navigate(targetUrl);
}
return client.focus();
A notification click grants the service worker a transient user
activation, and both focus() and openWindow() refuse to run without one.
navigate() spends that activation, and it also replaces the client's
document, which invalidates the WindowClient handle the next line uses.
So navigating first breaks the click two ways over.
Instrumented on a device, against a backgrounded installed PWA:
client 1: navigate ok -> focus() threw NotFoundError (stale handle)
client 2: navigate ok -> focus() threw InvalidAccessError (activation spent)
openWindow() -> threw InvalidAccessError (same)
Every rejection was swallowed by the surrounding catch, so the toast
closed and nothing opened, with nothing in any log to say why.
Focusing first uses the activation while it is still live. navigate()
needs none of its own once the client is focused, and it is wrapped so a
failed navigation still leaves the app raised rather than falling through
to opening a second window.
Running in production since 2026-08-24.
2026-08-26 01:40:18 +02:00
Linus Rath
ad5ea57565
Merge pull request #910 from hildebrandttk/fix/recurrence-drop-skip-omit
...
fix(calendar): drop default SKIP=OMIT from recurrence rules (DAVx5 sync)
2026-08-25 21:20:49 +02:00
Stefan Hildebrandt
ced81835ef
fix(calendar): drop default SKIP=OMIT from recurrence rules (DAVx5 sync)
...
Recurring events defaulted skip:"omit"+rscale:"gregorian" on every rule,
which Stalwart serialises into the CalDAV RRULE as RSCALE=GREGORIAN;SKIP=OMIT.
DAVx5 rejects that ("Invalid recurrence rule"), breaking Android sync. Those
RFC 7529 fields only matter for non-Gregorian scales / invalid-date handling,
so stop emitting them for plain Gregorian rules.
- lib/recurrence-rule.ts: createRecurrenceRule() helper with no skip/rscale.
- CalendarRecurrenceRule.rscale/skip are now optional.
- event-modal + recurrence-editor build rules via the helper.
- demo fixture cleaned; unit test asserts no skip/rscale.
Closes #805 .
2026-08-25 21:13:34 +02:00
Linus Rath
e5d5847169
chore: update version to 1.9.0
1.9.0
2026-08-25 21:03:52 +02:00
Linus Rath
67f1790299
fix: close IPv6 transition-address and redirect bypasses in endpoint guard
2026-08-25 20:50:35 +02:00
Linus Rath
2fd183c789
fix: add swipe-action and calendar-kind strings to all 24 locales
2026-08-25 20:42:20 +02:00
Linus Rath
c4c402fbae
chore: npm audit fix — bump next 16.3.3, pdfjs-dist 6.2.108, dompurify 3.4.14
2026-08-25 20:34:24 +02:00
Linus Rath
a15af72296
fix: resolve shared-account identity and email on reschedule; isolate per-account scheduled-list failures
2026-08-25 20:26:48 +02:00
Linus Rath
1305d13a77
Merge pull request #874 from rotterp/fix/scheduled-send-shared-accounts
...
fix: route scheduled sends to the account that owns the submission
2026-08-25 20:23:58 +02:00
Linus Rath
819d3c78cc
Merge pull request #898 from French-Asgeir/feature/event-toolbar-overflow
...
fix: event toolbar overflow in edit mode
2026-08-25 20:22:17 +02:00
French-Asgeir and Copilot Autofix powered by AI
7046f2d557
fix: fix save and cancel button being unavailable when event is created
...
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com >
2026-08-25 20:20:29 +02:00
Linus Rath
99daa53c8c
feat: search suggestions with recent searches and contact autocomplete #845
2026-08-25 20:09:18 +02:00
Linus Rath
55ef780342
fix: cap live SSE streams per tab so many logins can't starve JMAP requests #702
2026-08-25 20:03:29 +02:00
Linus Rath
0b20f60579
Merge branch 'main' of https://github.com/bulwarkmail/webmail
2026-08-25 19:52:02 +02:00
Linus Rath
1ce1f9c918
Merge pull request #877 from dealerweb/fix/pro-draft-tab-attachments
...
fix: carry draft attachments in the Pro draft tab too
2026-08-25 19:51:22 +02:00
Linus Rath
3ef2e6946f
fix: embed the signature into re-opened drafts #848
2026-08-25 19:49:49 +02:00
Linus Rath
af5fac6baa
fix: flip $junk/$notjunk keywords on spam and not-spam #850
2026-08-25 19:36:52 +02:00
Linus Rath
3472bc0419
fix: parse calendar invitations in directly viewed shared folders against the folder owner #867
2026-08-25 19:36:04 +02:00
Linus Rath
987ed75aaf
Merge pull request #861 from dealerweb/fix/fresh-compose-tab-title
...
fix: keep the fresh-compose tab title clear of the selected email subject
2026-08-25 19:26:54 +02:00
Linus Rath
1faa6f6900
Merge branch 'main' of https://github.com/bulwarkmail/webmail
2026-08-25 19:22:50 +02:00