Linus Rath
aeb2aeda66
fix: stop a click on a mention chip from opening the mailto handler in Firefox
2026-10-19 00:47:05 +02:00
Linus Rath
38c983a886
fix: open the mention card on click and show on hover that the chip is clickable
2026-10-19 00:38:01 +02:00
Linus Rath
d4b5c4b5c2
fix: load demo portraits from the mount prefix so a Lite bundle under a subpath stays self-contained
2026-10-19 00:29:37 +02:00
Linus Rath
8da659fd8c
feat: install any version from the marketplace and show updates, withdrawn versions and advisories
...
The marketplace now talks to the extension directory's v2 API only. The
detail page lists every version, previews the one picked, installs it,
and refuses a version the publisher withdrew unless the admin confirms,
or one outside the Bulwark range it supports. The listing gains sort, an
Installed view and an updates strip fed by the directory's updates check,
with notices for advisories, deprecations and suspensions.
A self-hosted directory older than 2026-10-14 has no v2 API and no
longer works with the marketplace.
2026-10-19 00:09:39 +02:00
Linus Rath
dd0da783c6
feat: keep replaced plugin and theme versions and roll back to them
2026-10-19 00:08:10 +02:00
Linus Rath
dc837c25f2
feat: let an install link name the extension version to offer in the marketplace
2026-10-19 00:07:04 +02:00
Linus Rath
41a52ec53b
docs: refresh the readme images and the web app manifest screenshots from the new demo
2026-10-18 20:38:44 +02:00
Linus Rath
47e89b678e
fix: scope demo queries to the account they are asked for, so merged views and search list each message once
2026-10-18 20:06:39 +02:00
Linus Rath
551c275602
chore: keep demo asset files byte-exact across checkouts
2026-10-18 19:49:29 +02:00
Linus Rath
4c0017d0c1
feat: rework the demo around one persona with two accounts and a shared mailbox
...
The demo user becomes Nora Lindqvist, engineering lead at Meridian Labs,
in the week of a product launch. The fixtures tell one story across mail,
contacts, calendar, tasks and files, and exercise the features the
screenshots and the public demo should show:
- a second, mail-only login (her personal domain) and the shared Support
mailbox delegated to the work account, so the account switcher, the
shared section and the merged inbox have real content
- raw headers the way Stalwart writes them: the sender check fails on
the phishing mail, newsletters carry a one-click unsubscribe, one mail
asks for a read receipt, and spam scores show in the details
- an iMIP invitation with a served .ics, an event waiting for the answer
on the calendar, and RSVP patches applied in the demo client
- @mentions as mailto links in a received mail, a verification code
twelve minutes old, nested folders, named tags on the mail, contact
groups, a scheduled message and tasks switched on
- every attachment and file backed by real bytes under public/demo,
generated by `scripts/demo-assets/generate.mjs`; contact photos are
bundled portraits instead of requests to randomuser.me
- folder counts computed from the mail instead of hand-kept numbers
Demo login seeds the tags, templates and merged-inbox settings once per
device and switches the cross-account gate on for the session; "Reset"
restores them. `bulwark-demo-simulate=off` in localStorage stops the
simulated incoming mail for screenshot runs.
2026-10-18 19:48:11 +02:00
Linus Rath
eb18a13878
feat: show the contact card for @mentions in the composer and in received mail
2026-10-18 18:23:45 +02:00
Linus Rath
2abe5eb078
fix: move dragged messages from merged views within their own account (GHSA-8x23-qw3w-mhrx)
2026-10-18 17:54:48 +02:00
Linus Rath
bfe98b49a0
fix: act on the clicked row when another account has a message with the same id (GHSA-8x23-qw3w-mhrx)
2026-10-18 17:54:48 +02:00
Linus Rath
fbae8acfb8
feat: turn @mentions into chips with a hover card
2026-10-18 17:52:11 +02:00
Linus Rath
0ac7bcb385
feat: show the message list as columns with one-line conversation rows #262
2026-10-18 17:37:21 +02:00
Linus Rath
8791fa5176
feat: offer contacts in @ mentions and add the picked one as a recipient
2026-10-18 16:36:28 +02:00
Linus Rath
0e6733d5e6
fix: drop plain-text emphasis markers from message previews #1260
2026-10-18 16:23:54 +02:00
Linus Rath
ea1d1e2870
fix: stop re-rendering every row when a search starts
2026-10-18 16:01:43 +02:00
Linus Rath
ad9837d2d2
fix: add the Estonian text for the tag rename warning
2026-10-18 15:05:08 +02:00
Linus Rath
4fa22200e7
fix: keep vacation forwarding and plugin vetoes when a tag rename rewrites the filters #854
2026-10-18 15:03:20 +02:00
Linus Rath
45840e722a
Merge pull request #854 from dev-hive-kazniisa/fix/keyword-rename-sieve-sync
...
fix: renaming a tag leaves filter rules tagging under the old id
2026-10-18 15:02:15 +02:00
Linus Rath
99cf78a280
fix: keep shared folders from other servers when they reuse an account id #1108
2026-10-18 14:58:53 +02:00
Linus Rath
4f9271e25b
Merge pull request #1108 from hildebrandttk/fix/cross-view-shared-folder-dedup
...
fix: list a shared folder reachable through two logins only once in c…
2026-10-18 14:57:30 +02:00
Linus Rath
b23735fb6b
feat: translate the strings added since the Estonian locale was made
2026-10-18 14:41:32 +02:00
Linus Rath
eb100c6aac
fix: draw the Estonian flag without a shared clip path id
2026-10-18 14:39:59 +02:00
Linus Rath
dca10ba9aa
feat: translate the company directory into Estonian
2026-10-18 14:39:59 +02:00
Linus Rath
f3482ce020
fix: remember restored sign-ins only when the restoring account is remembered
2026-10-18 14:39:59 +02:00
Linus Rath
1e992e6c7f
fix: check plugin dropdown messages before the host draws them
2026-10-18 14:39:59 +02:00
Linus Rath
be06956398
test: cover the From pick when replying to another connected account
2026-10-18 14:39:59 +02:00
Linus Rath
7573471544
fix: keep plugins from reading mail of other connected logins #1273
2026-10-18 14:39:58 +02:00
Linus Rath
811e175cd0
fix: tell today's mail by the time zone setting in the sender line #1259
2026-10-18 14:39:58 +02:00
Linus Rath
610df64463
fix: keep the whole folder after a restart when a category tab was open #1264
2026-10-18 14:39:27 +02:00
Linus Rath
2f7873e756
test: update the inline image reply test for the current composer mocks
2026-10-18 14:39:07 +02:00
Linus Rath
402188a4d5
Merge pull request #1125 from guisea/fix/inline-attachments-reply-forward
...
fix(email-composer): normalize bracketed content-ids for inline reply/forward images
2026-10-18 14:38:13 +02:00
Linus Rath
1ff7db0827
Merge pull request #1254 from raudraido/feat/add-estonian-locale
...
feat: add Estonian (et) locale
2026-10-18 14:34:37 +02:00
Linus Rath
100da43991
Merge pull request #1247 from lucamzanon/feat/account-archive-passwords
...
feat: optionally keep mailbox passwords in the account list backup
2026-10-18 14:34:31 +02:00
Linus Rath
5aba2a92c5
Merge pull request #1251 from tobiasge/feat/plugin-ui-kit-combobox
...
feat(plugins): add Combobox component to UI kit with host floating dropdown portal
2026-10-18 14:34:26 +02:00
Linus Rath
7dd8e93949
Merge pull request #1270 from vixh/fix/multi-account-self-reply
...
fix: reply to a message from another connected account goes to that account
2026-10-18 14:34:22 +02:00
Linus Rath
24e7e738bd
Merge pull request #1274 from alyyousuf7/fix/plugin-email-get-shared-accounts
...
fix: let api.email.get read a listed message of a shared account
2026-10-18 14:34:18 +02:00
Linus Rath
1b5da75a47
Merge pull request #1262 from balabommablock-cpu/fix/relative-ago-calendar-days
...
fix: count calendar days in the time zone for the relative date
2026-10-18 14:34:14 +02:00
Linus Rath
0cc2c176f6
Merge pull request #1265 from alyyousuf7/fix/refresh-category-tab-filter
...
fix: keep the category tab filter when the mailbox refreshes
2026-10-18 14:34:10 +02:00
Linus Rath
84ce0ceb4f
Merge pull request #1268 from sanitz/fix/recurring-event-refetch
...
fix(calendar): refetch visible range after creating recurring event
2026-10-18 14:34:06 +02:00
Linus Rath
1c8e7025e6
Merge pull request #1178 from VasilisNtovolos/fix/mixed-account-bulk-archive
...
fix: route bulk archive by owning account
2026-10-18 14:33:41 +02:00
Linus Rath
79d8287dfd
Merge pull request #1256 from sanitz/fix/task-due-localdatetime
...
fix(tasks): send an all-day task's due and start as a LocalDateTime
2026-10-18 14:30:08 +02:00
Linus Rath
58eff0e879
Merge pull request #1258 from HOLOEYE-JZ/feat/archive-feature-gate
...
feat: admin policy gate to turn off archiving #1257
2026-10-18 14:29:27 +02:00
Linus Rath
5411a9ef50
Merge pull request #1272 from Peterka35/fix/mark-as-read-delay-thread-expand
...
fix: mark shared conversations read on the owner account, and follow markAsReadDelay when expanding a conversation
2026-10-18 14:21:50 +02:00
Linus Rath
710e32cc10
fix: ignore Nextcloud filter markers inside rule text
2026-10-18 14:19:07 +02:00
Linus Rath and French-Asgeir
7163a5dcc1
fix: translate contact field types and more French strings
...
Co-authored-by: French-Asgeir <109287366+French-Asgeir@users.noreply.github.com >
2026-10-18 14:19:07 +02:00
Linus Rath
8e7245b26c
feat: let the theme policy set and lock the color mode #1280
2026-10-18 13:46:49 +02:00
Linus Rath
4adbad25f6
feat: end the provider session through a configured logout URL #1279
2026-10-18 13:46:48 +02:00