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
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
Abdullah and Linus Rath
7dc5984359
feat(i18n): add Turkish localization
2026-05-01 01:16:30 +02:00
Linus Rath
f3d9115ecd
feat: web push notifications for PWA #233
2026-05-01 00:26:48 +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
2c419cc4fe
feat: add right-click context menu on empty calendar space
2026-04-28 01:56:15 +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
3e1de10213
feat: add JMAP sharing for calendars and address books
2026-04-26 20:10:04 +02:00
Roman Vanicek and Linus Rath
4a24d2a11d
feat: add Czech language support
2026-04-26 15:48:43 +02:00
Linus Rath
aadf56c27b
fix: emit RFC 9553 name kinds and decode QUOTED-PRINTABLE in vCard import #224 #187
2026-04-26 02:47:19 +02:00
Linus Rath
9f8588eadc
fix: hide preview line in compact density to match settings preview ( #223 )
2026-04-26 02:12:28 +02:00
Linus Rath
d657aec391
feat: add support for right-side composer sidebar and update related types
2026-04-25 19:45:45 +02:00
Linus Rath
fe1d4861bb
feat: composer-sidebar slot + plugin-declared frame-src origins
2026-04-25 18:40:54 +02:00
Linus Rath
29197ea355
feat: replace folder prompt() calls with proper modal dialog
2026-04-25 16:30:18 +02:00
Linus Rath
4788e8a91a
feat: add right-click context menu to mail folders sidebar
2026-04-25 16:26:05 +02:00
Linus Rath
b80678b00f
feat: add 'Today' button to desktop calendar toolbar
2026-04-25 03:11:16 +02:00
Linus Rath
e5083ec1df
fix: restore admin panel after Stalwart v0.16 REST API removal
2026-04-25 01:12:33 +02:00
Linus Rath
df8d04e233
fix: restore broken viewer toolbar actions and improve mobile menu #220
2026-04-24 19:31:38 +02:00
Christian Lepthien
ce9f7af330
fix: improve corean flag
2026-04-24 14:56:58 +02:00
Linus Rath
081e8a0310
feat: add setting to show avatars in junk folder, disabled by default
2026-04-23 18:23:48 +02:00
Linus Rath
6503482b55
feat: support resizing events from the top edge
2026-04-22 21:14:28 +02:00
Linus Rath
39a228b20e
feat: streamline mobile email viewer header layout
2026-04-22 20:50:12 +02:00
Linus Rath
4b069808d6
feat: add isMobile prop to calendar views and time grid interactions
2026-04-22 20:37:00 +02:00
Linus Rath
3c9fa5dc25
feat: implement batch archiving of emails
2026-04-22 00:05:38 +02:00
Linus Rath
40982bc37b
fix: align hover styles and selection-toggle target with focused item
2026-04-21 23:50:55 +02:00
Linus Rath
76f6149841
feat: add setting to toggle alphabetical grouping in contacts list
2026-04-21 23:22:18 +02:00
Linus Rath
7d6a3c8c76
feat: group contacts by first letter with sticky section headers
2026-04-21 23:15:13 +02:00
Linus Rath
3f36045990
feat: reorganize settings into 6 groups with clearer tabs
2026-04-21 22:22:02 +02:00
Linus Rath
9a44babcf1
feat: add collapsible details to calendar invitation banner and update sanitization config for iframe rendering
2026-04-21 21:21:42 +02:00
Linus Rath
f032758303
feat: revamp contact detail, filters, and add photo/print/duplicate
2026-04-21 21:16:54 +02:00
Linus Rath
92c7f74420
feat: add right-click context menu to contacts
2026-04-21 19:33:00 +02:00
Linus Rath
c2e4518cfa
feat: add account addition button to navigation rail
2026-04-21 19:20:50 +02:00
Linus Rath
00f33afdf9
feat: add contact activity component with recent emails and upcoming events
2026-04-21 19:18:36 +02:00
Linus Rath
e566cfe687
feat: add API Keys management and IP allowlist for App Passwords
2026-04-21 18:59:47 +02:00
Linus Rath
30c4afb977
i18n: add missing translation keys
2026-04-21 17:42:52 +02:00