Linus Rath
2c3292e980
fix: size the policy page's small text in rem
2026-10-29 19:38:46 +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
Linus Rath
b22968a7df
fix: show the message list, not only the reader, with a large browser text size and wrap cut-off labels
2026-10-29 19:38:45 +01:00
Linus Rath
1111dd6709
fix: show the focus outline on menu items, grid cells and other roving-focus controls
2026-10-29 19:38:44 +01:00
Linus Rath
8b85f63c75
fix: label the value a locked setting gives users
2026-10-29 18:28:32 +01:00
Linus Rath
48a2b596d5
feat: name the locks and defaults a policy file import changes
2026-10-29 18:27:35 +01:00
Linus Rath
58f01fe7a3
feat: let admins lock a setting to a chosen value and preset any setting, accessibility options included
2026-10-29 18:27:35 +01:00
Linus Rath
5e188998a7
feat: explain technical terms next to their labels in Settings and the admin area
2026-10-29 18:10:29 +01:00
Linus Rath
84c487e6c3
fix: give each settings and admin page its own tab title and translate the admin page list
2026-10-29 18:02:58 +01:00
Linus Rath
8b35962efb
fix: show section labels in sentence case instead of all caps
2026-10-28 22:26:39 +01:00
Linus Rath
67b44fd5de
fix: keep the inner edge of color bars straight on rounded events, tasks and notes
2026-10-28 21:50:29 +01:00
Linus Rath
96797597c5
Merge branch 'main' into feat/org-features
2026-10-28 15:14:34 +01:00
Linus Rath
ab417728ec
fix: keep admin toasts above the save bar so they never cover discard or save
2026-10-28 12:46:04 +01:00
Linus Rath
feac899133
fix: say "new calendar", "new app password", "new API key", "add public key", "sub-addressing" and "back to mail" in settings and the admin
2026-10-28 10:33:03 +01:00
Linus Rath
44abfdb989
fix: name the admin update dot in the user's language, as on the navigation rail
2026-10-28 10:28:41 +01:00
Linus Rath
5d90a850bd
Merge branch 'feat/org-recovery' into feat/org-features
...
# Conflicts:
# components/email/email-list.tsx
2026-10-28 09:17:56 +01:00
Linus Rath
272083399c
Merge branch 'feat/org-tags' into feat/org-features
...
# Conflicts:
# lib/admin/restriction-keys.ts
# lib/jmap/client.ts
2026-10-28 09:15:17 +01:00
Linus Rath
f1a666777b
Merge branch 'feat/org-features' into feat/org-recovery
2026-10-28 09:08:49 +01:00
Linus Rath
33ca8efb0f
fix: keep shared tags safe when members edit at once or the server fails
...
The first version wrote the whole tag list on every change, guessed a
group when the server wouldn't say, and treated a failed read like a
server without metadata. Now:
- Definitions are a map by tag id under `tags`, and each change patches
one tag (`metadata/org.bulwarkmail.tags/tags/<id>`), so two members
adding tags at once both keep theirs. Fields and colors this version
doesn't know survive. The `{ list }` and bare-array shapes are still
read and converted by the first save.
- Shared tags appear only for confirmed group principals. A failed
principal lookup keeps the user's own tags and asks again later.
- "No metadata advertised" (0.16) and "the read failed" are separate.
A failed read keeps the last good tags; a failed save keeps the change,
says so, and sends it with the next good read after the client's
pause.
- Push reloads wait for 5 s of quiet and skip the echo of our own save;
a returning tab reloads definitions only, and the scan for unnamed tags
runs once per sign-in and then at most every 30 minutes.
- The editor names its buttons after the tag, shows the delete warning
and 44 px buttons on phones, returns focus to the edit button, and
asks for Inbox rights only for confirmed groups.
2026-10-28 08:58:11 +01:00
Linus Rath
7f06ed7637
Merge branch 'feat/org-features' into feat/org-tags
...
# Conflicts:
# lib/admin/restriction-keys.ts
2026-10-28 08:14:39 +01:00
Linus Rath
a6af7bc8f1
feat: let admins limit or hide recovering deleted items per domain or group #1319
2026-10-28 07:27:55 +01:00
Linus Rath
528450db61
fix: name the edit button of a shared tag after the tag, not the list
2026-10-28 07:10:42 +01:00
Linus Rath
b5e92ba176
Merge branch 'feat/org-features' into feat/org-templates
...
# Conflicts:
# lib/admin/restriction-keys.ts
2026-10-28 07:10:25 +01:00
Linus Rath
3d8a0cfd0b
feat: let admins lock shared tags per domain or group
2026-10-28 06:46:04 +01:00
Linus Rath
82918fc7d7
Merge branch 'feat/org-features' into feat/org-delegates
...
# Conflicts:
# lib/admin/restriction-keys.ts
2026-10-28 06:30:09 +01:00
Linus Rath
f0539a33f6
feat: let admins limit every share dialog to read access with sharingRights
2026-10-28 06:27:49 +01:00
Linus Rath
57065d7ef2
feat: show an organisation template library from the admin
2026-10-28 05:53:50 +01:00
Linus Rath
795faceee7
Merge branch 'feat/org-thirdparty' into feat/org-features
2026-10-28 05:51:22 +01:00
Linus Rath
687cd89346
Merge branch 'feat/org-external' into feat/org-features
...
# Conflicts:
# lib/outgoing/quick-reply.ts
# lib/outgoing/send-pipeline.ts
2026-10-28 05:46:11 +01:00
Linus Rath
9e809a31db
Merge branch 'feat/org-features' into feat/org-thirdparty
2026-10-28 05:27:58 +01:00
Linus Rath
823da8c810
Merge branch 'feat/org-features' into feat/org-external
...
# Conflicts:
# components/email/email-viewer.tsx
# components/mail/mail-app.tsx
2026-10-28 05:19:21 +01:00
Linus Rath
2a90437fbc
test: give the domain list test time under load
2026-10-28 05:15:40 +01:00
Linus Rath
0232ae322b
feat: let admins hide delegates or limit them to read access per domain or group
2026-10-28 05:11:26 +01:00
Linus Rath
7a97ad21d7
fix: announce a waiting update on the admin Version entry to screen readers
2026-10-28 05:06:03 +01:00
Linus Rath
2ace501871
Merge branch 'feat/org-features' into feat/org-signatures
2026-10-28 04:51:22 +01:00
Linus Rath
89f0cd7e92
fix: say that {company} takes the branding of the web address Bulwark is opened on
2026-10-28 04:37:24 +01:00
Linus Rath
1a747ac9dd
feat: limit the page's CSP to the configured hosts with no third-party traffic #903
2026-10-28 04:30:41 +01:00
Linus Rath
031d94635c
refactor: keep the outgoing host descriptions out of the browser bundle and scan every URL form #903
2026-10-28 04:30:23 +01:00
Linus Rath
c9975eef3f
fix: report admin results in the app's toasts instead of a banner under the page header
2026-10-28 04:05:51 +01:00
Linus Rath
b945a789f9
fix: match internationalised domains in either form and name the domains an admin typed wrong
2026-10-28 04:05:46 +01:00
Linus Rath
1f1319d46e
fix: hand the retired plugin's parts over one switch at a time and tell plugins about each switch
2026-10-28 03:54:47 +01:00
Linus Rath
0154e24ffc
feat: add an admin disclaimer to every sent message
2026-10-28 03:17:03 +01:00
Linus Rath
92c9110f3c
feat: show the third-party traffic switch and what stays reachable in Organisation > Security #903
2026-10-28 02:24:13 +01:00
Linus Rath
65e3d0d2d4
feat: let admins set an organisation signature with user details per domain or group #908
...
Admins write an HTML and a plain-text signature with placeholders on
Organisation > Signatures, per scope. Users fill in the details it asks
for once, under Settings > Account. Without a lock it is the default for
addresses without a signature of their own; locked or hidden, it
replaces every signature.
- `lib/org-signature.ts` fills the templates: values escaped, lines whose
placeholders are all empty dropped
- the composer applies it right before the plugin signature, so new mail,
replies, forwards, re-opened drafts, plain text and identity swaps all
take it the way they take an identity signature; quick reply too
- a send finaliser puts a locked signature back once when it was deleted
- the identity editor shows the filled-in signature read-only with "Set
by your organisation" when locked, and no editor when hidden
- `signatureDetails` is a synced setting
2026-10-28 02:23:55 +01:00
Linus Rath
a03c498942
feat: let admins turn on external mail warnings per domain or group and import the plugin's safe domains
2026-10-28 02:19:30 +01:00
Linus Rath
45cc6988e0
feat: sign out after an admin-set idle time or session length, with a warning first
2026-10-28 02:18:07 +01:00
Linus Rath
4004b9be7c
feat: let admins export and import the whole user policy as one file
2026-10-28 00:44:31 +01:00
Linus Rath
e76490580d
feat: add an Organisation area to the admin panel with domain and group scopes
2026-10-28 00:40:56 +01:00
Linus Rath
39c8b14574
fix: open the admin panel in the desktop layout without a phone-layout flash
2026-10-25 12:42:02 +01:00
Linus Rath
80323148d2
fix: hide sign out of admin for stalwart admins signed in automatically
2026-10-21 00:09:30 +02:00