Linus Rath
7f751e7de2
fix: offer the tags of the selection's account in the context menu, like the toolbar
2026-10-28 08:58:19 +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
9304557819
fix: look up another signed-in account for the external mail checks only when an admin turned them on
2026-10-28 08:07: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
3d8a0cfd0b
feat: let admins lock shared tags per domain or group
2026-10-28 06:46:04 +01:00
Linus Rath
b049b6f470
feat: share tag names and colours in group mailboxes #1310
2026-10-28 06:43:46 +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
49c9ec6a45
fix: start a delegate's Change from what they have and keep what fits no choice as it is
...
Change used to pre-fill the closest choice and then replace everything
of that type, so a folder added after "all", a single non-Inbox folder,
a non-default calendar, free/busy only or manager rights were narrowed
or widened on Save. Now a type gets a choice only when the grants match
it exactly; anything else starts at "Keep as it is", which leaves that
type out of the patch. Mixed levels keep each type's rights.
Also in the Delegates page:
- Change and Remove wait, with Try again, while a type couldn't be read
- an answer from the account before an account switch is dropped
- calendars, contacts and files follow their feature gates
- Remove says it covers what was shared from the user's own account
- typing your own address says "That's you"
- groups named only by the session get the group badge
- on Stalwart 1.0 the read hint says read delegates can flag mail
- the person list is plain buttons, not a listbox without arrow keys
- the rights follow sharingRights
2026-10-28 06:28:02 +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
795faceee7
Merge branch 'feat/org-thirdparty' into feat/org-features
2026-10-28 05:51:22 +01:00
Linus Rath
00ea203f4f
refactor: describe the sending identity and account once for every send check
2026-10-28 05:50:17 +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
638e7c2670
fix: start the delegate dialog in the search field
2026-10-28 05:42:04 +01:00
Linus Rath
0bd63fca08
fix: name a delegate from the accounts they share with you when the directory won't
2026-10-28 05:38:44 +01:00
Linus Rath
b0eb9fcfe1
fix: say the organisation blocks remote content instead of offering to load it with no third-party traffic #903
2026-10-28 05:38:39 +01:00
Linus Rath
9e809a31db
Merge branch 'feat/org-features' into feat/org-thirdparty
2026-10-28 05:27:58 +01:00
Linus Rath
9f230ca8fc
fix: keep a quick reply as a draft when an automatic sign-out comes while the external recipient question is open
2026-10-28 05:23:25 +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
1a92eba702
test: check that a refused address lookup shows the directory note on its own
2026-10-28 05:18:49 +01:00
Linus Rath
2a90437fbc
test: give the domain list test time under load
2026-10-28 05:15:40 +01:00
Linus Rath
9dab8955dd
feat: confirm before inviting people outside the organisation to a meeting
2026-10-28 05:12:24 +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
1202a13720
fix: judge external mail by the message's own account and the sending account in several-account setups
2026-10-28 05:11:24 +01:00
Linus Rath
bcf4f3a7a6
feat: give a delegate access to mail, calendars and contacts in one step
2026-10-28 05:11:23 +01:00
Linus Rath
60167f752f
fix: label mail as External when any sender is outside or has no domain, and show the domain on a tap
2026-10-28 05:09:35 +01:00
Linus Rath
836dcba66e
fix: don't count senders whose images the user allowed as contacts for the external recipient confirm
2026-10-28 05:09: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
9aa810f20d
refactor: keep the share rights presets in one module for every share dialog
2026-10-28 04:46:45 +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
daae45e379
fix: ask for the details every sending address needs and preview the signature that is sent
2026-10-28 04:35:26 +01:00
Linus Rath
d128503db5
fix: use the organisation policy of the account a message is sent from
2026-10-28 04:32:39 +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
a9c89ae7a2
fix: fail closed while the third-party switch is unknown or set as a string #903
2026-10-28 04:30:32 +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
b756111097
fix: add the disclaimer below plugin footers and before a plugin signs or encrypts the message
2026-10-28 04:25:25 +01:00
Linus Rath
629e96b6bd
fix: stop counting focus in the office editor or a plugin frame as activity
2026-10-28 04:18:24 +01:00
Linus Rath
7bbfe61783
fix: keep keys pressed in the external recipient confirm away from the mail shortcuts
2026-10-28 04:18:11 +01:00
Linus Rath
490818adee
fix: keep signature plugins from changing a locked organisation signature
2026-10-28 04:18:01 +01:00
Linus Rath
73c12d03eb
fix: ask about every external recipient but the identity's own Bcc, trust only the identity's From, and queue a second question
2026-10-28 04:15:12 +01:00
Linus Rath
da5d7baf51
fix: swap the signature in an open composer when the organisation policy or the user's details change
2026-10-28 04:12:15 +01:00
Linus Rath
ecbbe137c4
fix: wait for sends and keep quick replies as drafts before an automatic sign-out
2026-10-28 04:06:05 +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
3fbd5a7818
fix: check the signature and disclaimer in each part on its own so neither goes out twice
2026-10-28 04:00:25 +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
65e83e4b0d
fix: show the session warning above every overlay and count the server's sign-in time
2026-10-28 03:53:56 +01:00
Linus Rath
f9a04126d4
fix: keep a quick reply's text when the user goes back instead of sending
2026-10-28 03:47:40 +01:00
Linus Rath
bdd3b187dc
fix: name the edit button of each sending address for screen readers
2026-10-28 03:18:30 +01:00
Linus Rath
0154e24ffc
feat: add an admin disclaimer to every sent message
2026-10-28 03:17:03 +01:00
Linus Rath
4821227415
fix: start the session warning's focus on the button that keeps users signed in
2026-10-28 03:06:28 +01:00