Commit Graph
1802 Commits
Author SHA1 Message Date
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-AsgeirandCopilot 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