vietnamvps
2aa39d93de
feat(i18n): add Vietnamese flag icon
2026-10-30 11:09:33 +07:00
vietnamvps
50bcf01d75
feat(i18n): add Vietnamese to language picker
2026-10-30 11:07:04 +07:00
vietnamvps
1a3056df8c
feat(i18n): load Vietnamese client translations
2026-10-30 11:05:44 +07:00
vietnamvps
b6d82f1915
feat(i18n): load Vietnamese server translations
2026-10-30 11:04:35 +07:00
vietnamvps
405ec675e9
feat(i18n): register Vietnamese locale
2026-10-30 11:00:29 +07:00
vietnamvps
b33b08364a
feat(i18n): add Vietnamese translations
2026-10-30 10:58:00 +07:00
Linus Rath
66351e0d31
feat: show admins the changelog of every plugin version an update brings or a rollback undoes
2026-10-30 02:02:40 +01:00
Linus Rath
3945d38bbd
test: commit the bimi certificate fixtures the gitignore dropped
2026-10-30 01:03:55 +01:00
Linus Rath
23e8cc0a01
fix: size the accessibility preset preview text in rem
2026-10-30 01:02:44 +01:00
Linus Rath
a80083abd6
fix: let the lite build through with the gated bimi logo endpoint
2026-10-30 01:02:09 +01:00
Linus Rath
1da4f41f43
Merge branch 'feat/e-invoice-host'
2026-10-30 00:41:54 +01:00
Linus Rath
0fa206025c
fix: tint unread rows and mark them with a bar beside the avatar in flat fields
2026-10-30 00:40:05 +01:00
Linus Rath
2c19cfe8d9
fix: bundle dev plugins whose dependencies only declare main or touch node builtins
2026-10-30 00:31:52 +01:00
Linus Rath
392d17ab71
fix: show plugin badges on message rows drawn before the plugin started
2026-10-30 00:23:11 +01:00
Linus Rath
950fc21a79
Merge branch 'main' of https://github.com/bulwarkmail/webmail
2026-10-30 00:18:52 +01:00
Linus Rath
9418d79208
fix: name the Add-ons page in the question before a plugin forwards mail
2026-10-30 00:18:23 +01:00
Linus Rath
80476d1ad2
feat: show a multi-line text box for plugin admin settings that ask for one
2026-10-30 00:17:32 +01:00
Linus Rath
3c5b45a506
fix: make unread mail stand out in the flat fields theme
2026-10-30 00:17:19 +01:00
Linus Rath
cf0eb03c4a
feat: show the sender's BIMI logo as the sender icon when the message passes DMARC
...
Stalwart does no BIMI, so sender icons were only ever favicons, which
anyone controls for any domain. The webmail server now does the
receiver side itself at /api/bimi, and avatars ask it only for
messages whose own Authentication-Results say dmarc=pass for the exact
From domain.
- `lib/bimi/`: DMARC policy check (quarantine or reject, pct=100, the
parent domain's sp and p for subdomains), the assertion record with
fallback to the parent domain, mark certificate validation (chain to
pinned DigiCert, GlobalSign and SSL.com VMC roots, BIMI key purpose,
validity, SAN, SCTs present, CRL revocation, logo from the logotype
extension), SVG Tiny PS checks and rendering to PNG, caching
- logos backed only by the DNS record show by default; the admin
setting "Require a mark certificate" (`BIMI_REQUIRE_CERTIFICATE`)
limits them to VMC and CMC backed ones
- a check mark beside the sender's name for certificate-backed logos
- avatars try contact photo, BIMI logo, plugin avatar, favicon; the
sender warning shield still wins, and logos follow the sender icons
setting and the no-third-party-traffic mode
- the two-label public suffix list moved to `lib/root-domain.ts`
SCT signatures are not verified and only the default selector is used.
2026-10-30 00:12:24 +01:00
Linus Rath
6b73b9253b
fix: stop test runs from reloading the page under next dev
2026-10-30 00:04:04 +01:00
Linus Rath
2c34afce2d
fix: listen on the HOSTNAME and PORT from .env.local with npm start #1441
2026-10-30 00:01:29 +01:00
Linus Rath
0731d24f65
feat: show a small picture of what each accessibility preset changes
2026-10-29 23:47:14 +01:00
Linus Rath
fb751a30df
feat: add a table to the plugin UI kit for line items and totals
2026-10-29 23:33:25 +01:00
Linus Rath
23767b9c80
feat: let plugins print a page they made, such as a readable invoice
2026-10-29 23:30:43 +01:00
Linus Rath
f6b641c94e
feat: let plugins forward a message with its attachments after the user allows the address once
2026-10-29 23:27:15 +01:00
Linus Rath
06b18e1fa0
chore: release 1.19.0
1.19.0
2026-10-29 21:23:14 +01:00
Linus Rath
605a3983b1
feat: show a warning shield instead of the sender icon when the sender check fails
2026-10-29 21:13:36 +01:00
Linus Rath
ed988a2aae
ci: keep the a11y guard out of lint and vitest and mock narrowerThan in attachment tests
2026-10-29 21:08:59 +01:00
Linus Rath
c0fb427eec
feat: tick a row from anywhere beside its avatar or checkbox #1381
2026-10-29 20:53:52 +01:00
Linus Rath
50b3ddccec
feat: let admins keep the refresh token valid on sign-out so Stalwart keeps the consent #1388
2026-10-29 20:47:18 +01:00
Linus Rath
f1d6b3b815
Merge branch 'main' of https://github.com/bulwarkmail/webmail
2026-10-29 20:28:40 +01:00
Linus Rath
2e6dcceebb
Merge pull request #1358 from illuwa-soft/fix/full-height-app-page
...
fix: honor full-height app-page slots
2026-10-29 20:27:00 +01:00
Linus Rath
357b6af3c9
feat: offer to remove a cancelled meeting from the calendar in the cancellation mail #1425
2026-10-29 20:24:27 +01:00
Linus Rath
0b4e501142
feat: make the login email placeholder configurable #1423
2026-10-29 20:24:26 +01:00
Linus Rath
be28fb8ed7
fix: keep the production build's type check within 2 GB of memory #1431
2026-10-29 20:11:08 +01:00
Linus Rath
a225109400
fix: keep the open folder when clearing search filters #1430
2026-10-29 20:11:08 +01:00
Linus Rath
d875714f35
feat: offer remember me on the sso-only login and apply it to every sso path #1437
2026-10-29 20:06:44 +01:00
Linus Rath
b25e738a3e
fix: give calendar default alerts account-wide unique ids #1435
2026-10-29 20:06:16 +01:00
Linus Rath
e363427d0e
fix: decode escaped colons in imported vcard notes #1438
2026-10-29 20:06:16 +01:00
Linus Rath
a78d03a18d
fix: color attachment icons by file type in the reader like in the list
2026-10-29 20:06:15 +01:00
Linus Rath
5dfc958723
fix: stop a mail's own body overflow from adding a second scrollbar in the reader
2026-10-29 20:06:15 +01:00
Linus Rath
47bfd754f7
ci: check the main screens for accessibility regressions on every push
...
A Playwright job on the perf guard's production build runs axe-core's
WCAG 2.2 A/AA rules on the mail list, reading pane, composer, calendar,
contacts and Settings > Accessibility, and fails when a screen has more
serious or critical violations than scripts/a11y-guard/budget.json
allows (all zero today). Two more checks cover what axe can't see: the
keyboard focus outline stays visible in Windows contrast themes, and
single-key shortcuts don't act on the mail behind an open dialog.
axe-core is vendored next to the spec (MPL-2.0, see NOTICE), so the
check adds no dependency. `A11Y_GUARD_UPDATE=1 npm run test:a11y-guard`
rewrites the budget.
2026-10-29 20:02:10 +01:00
Linus Rath
2e13accade
fix: draw avatar initials in black or white so they read on every colour
2026-10-29 19:59:16 +01:00
Linus Rath
d552a3bb86
fix: give the message preview full contrast and the conversation toggle a 24px target
2026-10-29 19:53:58 +01:00
Linus Rath
6a54fcc5af
test: give the phone settings test the media query helper
2026-10-29 19:38:46 +01:00
Linus Rath
2c3292e980
fix: size the policy page's small text in rem
2026-10-29 19:38:46 +01:00
Linus Rath
a86023787f
fix: give Aurora Glass solid surfaces, menus and dialogs when transparency is reduced
2026-10-29 19:38:46 +01:00
Linus Rath
12676f247e
fix: let the spam game's inbox flash at most three times a second
2026-10-29 19:38:46 +01:00
Linus Rath
597b546e11
fix: keep the calendar period title readable at 320px wide
2026-10-29 19:38:45 +01:00
Linus Rath
35be105a73
fix: size small text in rem so it follows the browser and app text size
2026-10-29 19:38:45 +01:00