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
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
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
Linus Rath
3ef2b45fb4
feat: configurable message-list ordering #718
2026-08-25 19:20:48 +02:00
Linus Rath
9f32fc879b
feat: add custom time zone setting overriding browser detection #755
2026-08-25 19:18:16 +02:00
Linus Rath
46ccd2267d
fix: pin supported-calendar-component-set on created calendars #760
2026-08-25 19:16:20 +02:00
Linus Rath
8cd5c00b06
fix: keep the folder tree when a refresh burst hits maxConcurrentRequests #780
2026-08-25 19:09:21 +02:00
Linus Rath
8a7f8b0493
fix: gate first-touch calendar/contacts requests to stop duplicate default calendars #907
...
Stalwart lazily creates an account's default calendar on the first request
that touches it. Bulwark's login fires Calendar/get and CalendarEvent/query
concurrently, and on multi-node servers each node can create its own default,
leaving users with two identical "Personal" calendars. Hold later calendar and
address-book requests per account until the first one settles.
2026-08-25 19:07:01 +02:00
Linus Rath
e838794133
Merge pull request #895 from romanvru/feat/upload-progress
...
Real byte progress for attachment uploads, stock and plugin-offloaded
2026-08-25 18:55:07 +02:00
Linus Rath
a29cf27ff8
fix: route multi-account email lookups and invitation parsing by source account #847
2026-08-25 18:50:50 +02:00
Linus Rath
5109aa059a
fix: decode percent-encoded FileNode names from WebDAV-created nodes #869
2026-08-25 18:47:22 +02:00
Linus Rath
f189e0bab6
fix: refresh account display name from the Stalwart principal on login/restore/switch #900
...
Stalwart seeds the default identity name from the principal "Full name" only
once, and addAccount never rewrote displayName after first login, so an admin
rename never showed up in Bulwark. Read the live name via x:Account/get
through the passthrough (falling back to the identity name elsewhere) and
prefer the synced registry name in account settings.
2026-08-25 18:45:44 +02:00
Linus Rath
c65da9d76a
Merge branch 'main' of https://github.com/bulwarkmail/webmail
2026-08-25 18:40:00 +02:00