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