Linus Rath
089963b1b3
refactor: redesign expanded details panel
2026-05-01 18:22:06 +02:00
Linus Rath
4af952613a
fix: prevent context menu jump and animation on open
2026-05-01 17:43:07 +02:00
Linus Rath
0d9fa0285f
fix: prevent context menu from clipping below viewport
2026-05-01 17:28:40 +02:00
Linus Rath
683fe75864
i18n: translate SPF/DKIM/DMARC tooltips
2026-05-01 17:25:52 +02:00
Linus Rath
e9c9be84ad
fix: preserve list scroll position when tagging an email
2026-05-01 17:18:11 +02:00
Linus Rath
7822a363dd
fix: render below-header overflow popup outside clipped row
2026-05-01 17:10:17 +02:00
Linus Rath
1e535e96a2
feat: image attachment thumbnails and preview chips
2026-05-01 17:03:45 +02:00
Linus Rath
32135ddb95
fix: collapse below-header attachments to single row with overflow pill
2026-05-01 16:29:38 +02:00
Linus Rath
841513e510
feat: support subpath deployment with NEXT_PUBLIC_BASE_PATH environment variable
2026-05-01 14:57:49 +02:00
Linus Rath and GitHub
5964b2e456
Update README
2026-05-01 10:06:49 +02:00
Linus Rath
6a8ad525f1
chore: update version to 1.5.4
1.5.4
2026-05-01 02:17:33 +02:00
Linus Rath
31d17098d6
feat: open mail from push notification clicks
2026-05-01 02:13:25 +02:00
Linus Rath
3f97e6ed8d
fix: scope email notifications to genuine inbox deliveries
2026-05-01 02:08:13 +02:00
Linus Rath
2dea33e698
feat: improve new email push notification logic for inbox
2026-05-01 01:57:57 +02:00
Linus Rath
123764f8b8
feat: improve new email notification logic for inbox
2026-05-01 01:55:24 +02:00
Linus Rath
ec0f355c13
feat: allow custom sub-addressing delimiter character #239
2026-05-01 01:48:39 +02:00
Linus Rath
c555973b6b
feat: configurable sub-addressing delimiter #239
2026-05-01 01:42:06 +02:00
Linus Rath
a8db02e881
i18n: add missing keys across 15 locales
2026-05-01 01:26:22 +02:00
Abdullah and Linus Rath
7dc5984359
feat(i18n): add Turkish localization
2026-05-01 01:16:30 +02:00
Linus Rath
1c3003421e
fix: extend timeout for PushVerification and clean up leftover subscriptions
2026-05-01 00:54:40 +02:00
Linus Rath
f3d9115ecd
feat: web push notifications for PWA #233
2026-05-01 00:26:48 +02:00
Linus Rath
4400a7abba
fix: evict unrecoverable basic-auth accounts on reload
2026-04-30 15:39:11 +02:00
Linus Rath
45a4db1c22
fix: pin JMAP auth verification to configured server URL #237
2026-04-30 15:34:14 +02:00
Linus Rath
65eef4b2b8
fix: persist htmlBody in drafts to preserve rich formatting #236
2026-04-30 15:24:09 +02:00
Linus Rath
25de7d996c
feat: add tables to composer #236
2026-04-30 15:16:51 +02:00
Luis Felipe Marzagao and Linus Rath
c406fbb73e
fixup! fix: implement useTranslations for start date on event detail popover
2026-04-30 11:08:16 +02:00
Luis Felipe Marzagao and Linus Rath
31024396e3
fixup! fix: implement useTranslations for start date on event modal
2026-04-30 11:08:16 +02:00
Luis Felipe Marzagao and Linus Rath
f0967f90eb
fix: implement useTranslations for start date on event modal
2026-04-30 11:08:16 +02:00
Luis Felipe Marzagao and Linus Rath
a4bb8e0c28
fix: implement useTranslations for start date on event detail popover
2026-04-30 11:08:16 +02:00
Linus Rath
7188abc9bc
fix: set In-Reply-To and References on replies #234
2026-04-30 01:25:04 +02:00
Linus Rath
4a91cd0c44
style: drop iframe border-radius
2026-04-29 20:26:40 +02:00
Linus Rath
6abf8a5dd8
fix: detect <style> tag for padding
2026-04-29 20:25:24 +02:00
Linus Rath
3667c842c6
fix: light-mode override to body content only
2026-04-29 20:17:59 +02:00
Linus Rath
b64721b43c
fix: pad bare HTML emails like plain-text mails
2026-04-29 20:09:00 +02:00
Linus Rath
6b5ca2cb89
fix: smooth out body load, prevent flicker
2026-04-29 20:03:58 +02:00
Linus Rath
0f6e4f995f
fix: prevent iframe flash on Load images or Trust sender
2026-04-29 18:29:48 +02:00
Linus Rath
0b6fdcabfb
fix: update connect-src to include http protocol in development mode
2026-04-29 13:55:38 +02:00
Linus Rath
fc49fe0687
chore: update version to 1.5.3
1.5.3
2026-04-28 18:43:09 +02:00
Linus Rath
419382d25d
feat: add contacts feature gate and update telemetry payload
2026-04-28 17:54:11 +02:00
Linus Rath
8935b81f12
chore: update version to 1.5.3
2026-04-28 17:34:06 +02:00
Linus Rath
ec581ce53e
feat: update Docker configuration
2026-04-28 17:27:47 +02:00
Linus Rath
81d8465a79
fix: block telemetry endpoint from pointing at internal hosts
2026-04-28 17:16:30 +02:00
Linus Rath
0f3b506604
feat: add extension preview page and API for detailed extension information
2026-04-28 15:55:23 +02:00
Linus Rath
1b84547211
feat: add Theme API v2 with token compiler, skin slot
2026-04-28 15:39:13 +02:00
Linus Rath
dafc8ace3c
feat: track unique logins
2026-04-28 08:19:46 +02:00
Linus Rath
2c419cc4fe
feat: add right-click context menu on empty calendar space
2026-04-28 01:56:15 +02:00
Linus Rath
90acf181f3
fix: harden plugin config, TOTP token exchange, and branding file serving
2026-04-28 01:44:37 +02:00
Linus Rath
54af07f2af
feat: add anonymous instance telemetry
...
Adds a once-per-day heartbeat that lets the project see how many
instances run Bulwark, on what platforms, with what features enabled,
and roughly how many accounts they have. No email addresses, hostnames,
IPs, or any end-user data are ever sent.
- lib/telemetry: state file, payload builder, jittered scheduler,
instance_id persistence at <data-dir>/.telemetry-id (delete to reset)
- app/api/admin/telemetry: admin API for status / set-consent /
set-endpoint / send-now (all audit-logged)
- app/admin/telemetry: settings page with status, JSON payload preview,
endpoint editor, send-now button, link to the privacy page
- instrumentation.node.ts: starts the scheduler on boot
Default state is enabled. The first heartbeat fires 1 hour after boot
so an admin who installs and immediately disables produces zero pings.
Disable via the settings UI, BULWARK_TELEMETRY=off (or
BULWARK_TELEMETRY_DISABLED=1), or by clearing the endpoint.
Account counts are bucketed (1, 2-5, 6-10, 11-50, 51-200, 201+) so a
small instance can't be re-identified by exact size. The /.telemetry-id
file can be deleted to mint a fresh instance_id.
Receiving collector is open source at bulwarkmail/dashboard. Self-host
your own and point at it via BULWARK_TELEMETRY_URL. Full schema,
retention (90d raw → aggregates), and lawful basis are documented at
bulwarkmail.org/docs/legal/privacy/telemetry.
2026-04-28 01:28:41 +02:00
Linus Rath
68f1fabc4b
fix: batch shortcuts act on multi-selection when present #228
2026-04-28 00:04:29 +02:00
Linus Rath
27451807db
chore: update version to 1.5.2
1.5.2
2026-04-27 22:45:23 +02:00