Commit Graph
1735 Commits
Author SHA1 Message Date
Linus Rath 2daffe1364 fix: complete the vietnamese strings and register them for plugin controls #1448 2026-10-31 16:24:49 +01:00
Linus Rath bc6fee7556 feat: let timed events show as coloured text or a dot in the month view #1449 2026-10-31 16:23:00 +01:00
Linus Rath 6b94f96e83 fix: redirect the bare base path of a sub-path install to the sign-in page #1455 2026-10-31 16:22:58 +01:00
Linus Rath d3fecae85f feat: hide the contacts directory when the server refuses it, and let users or admins turn it off #1457 2026-10-31 16:22:24 +01:00
Linus Rath 3b4a0c4c8e feat: fold the quoted history of iphone mail and outlook replies behind the ••• toggle #1476 2026-10-31 16:21:37 +01:00
Linus Rath 7c88fb8c5b fix: shrink the mail body to its content when it gets shorter after opening #1474 2026-10-31 16:21:35 +01:00
Linus Rath 3cb3a8d33a fix: keep pasted images inside the message body for recipients #1451 2026-10-31 16:14:49 +01:00
Linus Rath 5931cd1678 feat: send an oauth resource indicator when one is configured #1461 2026-10-31 16:14:35 +01:00
Linus Rath 3bdbdb1364 docs: move the mobile hand-off contract to the website 2026-10-31 14:32:39 +01:00
Linus Rath f74ff49f58 feat: give the mobile app its organisation policy for its access token 2026-10-31 14:10:53 +01:00
Linus Rath fb3ba0275a feat: hand the mobile app a one-time code instead of the sign-in in its link 2026-10-31 14:06:44 +01:00
Linus Rath 5340499520 fix: give quick reply the composer's placeholder, attachment and send confirmation checks 2026-10-31 02:00:51 +01:00
Linus Rath 6ccd384f35 fix: show replies sent in demo mode in the conversation they answer 2026-10-31 01:55:46 +01:00
Linus Rath 8a09ba5734 fix: leave a bounce's delivery report out of list chips and forwards 2026-10-31 01:50:03 +01:00
Linus Rath bd1fa8e08e fix: show contact photos in the demo's personal account 2026-10-31 01:40:38 +01:00
Linus Rath 3bb9f7df84 fix: lead with the address when two accounts share a name in the account switcher 2026-10-31 01:37:06 +01:00
Linus Rath 5eabdd8904 feat: play the involved sound for new mail by default 2026-10-31 01:21:02 +01:00
Linus Rath dafdda5347 fix: let search results move into the open folder #1452 2026-10-31 01:16:34 +01:00
Linus Rath d2f9f1a1a4 fix: send from a shared mailbox through its own identity for the from address #1450 2026-10-31 01:09:49 +01:00
Linus Rath 4a0772dc01 fix: open the next unread message after archiving in unread first #1453 2026-10-31 00:37:05 +01:00
Linus Rath 609464471d docs: note that a forged received line defeats the receipt check 2026-10-30 11:14:22 +01:00
Linus Rath dee2c07ce9 Merge branch 'main' of https://github.com/bulwarkmail/webmail 2026-10-30 11:05:11 +01:00
Linus Rath 4479df3bf5 Merge branch 'feat/structured-mail-calendar' into feat/structured-mail 2026-10-30 05:42:47 +01:00
Linus Rath df257c23ba Merge branch 'feat/structured-mail-cards' into feat/structured-mail 2026-10-30 05:40:44 +01:00
Linus Rath b0782af2d1 fix: keep routes and booking numbers in reading order in right-to-left languages 2026-10-30 05:40:17 +01:00
Linus Rath 87d9f89238 fix: update moved bookings in place and keep user edits when updating calendar events 2026-10-30 05:39:01 +01:00
Linus Rath 916434924c fix: show an arrives-by date on parcel cards only when the mail gives a latest date 2026-10-30 05:34:55 +01:00
Linus Rath 90d7afc349 fix: keep event cards whose last day ends after a daylight saving change 2026-10-30 05:27:46 +01:00
Linus Rath 1d4cae961e fix: place UTC pass times in the local zone and drop delayed or unclear pass times 2026-10-30 05:21:18 +01:00
Linus Rath ba6d5e448b fix: read a booking from its markup alone when the mail has some, not from its Wallet pass 2026-10-30 05:21:18 +01:00
Linus Rath b9b26e03a7 fix: give a boarding pass leg the same calendar uid as its booking mail 2026-10-30 05:10:33 +01:00
Linus Rath 972e5f6217 feat: add cards for booking, parcel and order mail 2026-10-30 05:06:17 +01:00
Linus Rath f3e0b6c451 fix: merge a flight written as LX0072 with its boarding pass for LX72 2026-10-30 05:02:08 +01:00
Linus Rath be87454eb7 feat: turn booking cards into calendar events with stable uids 2026-10-30 04:58:03 +01:00
Linus Rath 63830d4033 feat: read Apple Wallet boarding passes and tickets 2026-10-30 04:57:02 +01:00
Linus Rath 8098039d69 feat: show booking cards only for mail from verified senders 2026-10-30 04:41:29 +01:00
Linus Rath fa324170a2 feat: merge booking parts into one card per booking 2026-10-30 04:33:57 +01:00
Linus Rath 76b0c2fba2 feat: read schema.org booking markup from mail bodies 2026-10-30 04:27:25 +01:00
Linus Rath a529e6e57c feat: add an airport time zone table for flight cards 2026-10-30 04:18:53 +01: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 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 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 2c34afce2d fix: listen on the HOSTNAME and PORT from .env.local with npm start #1441 2026-10-30 00:01:29 +01:00