Commit Graph
4089 Commits
Author SHA1 Message Date
Linus Rath 3d7a4298eb fix: list company calendars in the calendar list on phones 2026-11-01 06:56:03 +01:00
Linus Rath 870881c57e fix: fetch a company calendar once for everyone at a time and pause after a failure 2026-11-01 06:51:17 +01:00
Linus Rath 595f23556f fix: let Suggest times skip the edited event's own time and close on Escape from its button
Also says how many times it found to screen readers, and the attendee
line for an address the server won't look up reads "Couldn't look up
this address".
2026-11-01 06:49:29 +01:00
Linus Rath 88a5c3e5d5 fix: take company calendar events away when the feed is gone or the account signs out 2026-11-01 06:44:57 +01:00
Linus Rath e7c8df01fd fix: show the out-of-office calendar choice the way the organisation's lock applies it 2026-11-01 06:42:37 +01:00
Linus Rath cbae82b2f0 fix: keep the out-of-office event in step when the reply changes on another device
The event counted as Bulwark's only while its times matched the record
in this browser's settings, so a reply switched off on a phone, by a
delegate, in Lite or with settings sync off left colleagues seeing a
busy event for a cancelled absence. It now also counts as Bulwark's
when it sits on the reply's dates from before the change, and it
carries the keyword bulwark-out-of-office so a device without a record
takes it over when the reply is loaded. Each account gets its own
pending sync.
2026-11-01 06:42:37 +01:00
Linus Rath c89c1cb36c fix: fetch company calendars for the active account when several are signed in 2026-11-01 06:37:50 +01:00
Linus Rath 0fcdc2ece4 fix: reach a company calendar on a private address only when its host names the intranet 2026-11-01 06:35:56 +01:00
Linus Rath f007d01c29 fix: keep company calendar addresses back without a session secret 2026-11-01 06:30:47 +01:00
Linus Rath a9e1b7bf43 fix: answer invitations in a group or shared mailbox as that account again #634
The banner only answered on the user's own copy since 877198a4b, so an
invitation in a group mailbox (or a boss's mailbox a delegate reads)
was imported into the user's own calendar and answered there: no
reply reached the organiser and the user got a duplicate. It now uses
the copy in the message's own account and answers as that account, as
the group without SENT-BY, as the person with SENT-BY naming the user.
The user's own answer bar on a calendar shared with them also finds the
same occurrence of their own copy of a series.
2026-11-01 06:29:13 +01:00
Linus Rath 962873800e test: cover suggest times, answering for others, the out-of-office block and company calendars against the test servers 2026-11-01 06:05:25 +01:00
Linus Rath 36160f9fbd fix: answer for a group mailbox as the group when the group address is one of your identities #634 2026-11-01 06:00:43 +01:00
Linus Rath e796631389 fix: say what company calendars need in a Lite build without third-party traffic 2026-11-01 05:53:54 +01:00
Linus Rath 3bd8e83d60 feat: show company calendars set by the admin 2026-11-01 05:41:34 +01:00
Linus Rath 68567e08ca feat: let admins lock blocking the calendar for out-of-office replies 2026-11-01 05:19:07 +01:00
Linus Rath a8f9d81337 feat: block the calendar while the out-of-office reply is on 2026-11-01 05:19:07 +01:00
Linus Rath 877198a4bf feat: answer invitations in a calendar shared with you as its owner #634 2026-11-01 05:05:12 +01:00
Linus Rath ab2fc6454d feat: let admins share every user's free/busy with a group 2026-11-01 04:51:30 +01:00
Linus Rath 93f02e9615 feat: suggest meeting times that are free for every attendee #1164
The participant availability test that expected "Free/busy isn't
available on this server" when Stalwart refuses the directory listing
now expects the attendee list: Stalwart 1.0.1 still answers
getAvailability for the principals the user knows with directory
queries off, so the list stays and names who couldn't be looked up.
The 1.0 build that refuses the lookups too keeps its own case.
2026-11-01 04:47:05 +01:00
Linus Rath 44e6808a86 fix: read attendee availability in the calendar's time zone 2026-11-01 04:34:31 +01:00
Linus Rath be07e4780f test: add helpers for the enterprise specs on the test servers 2026-11-01 04:20:02 +01:00
Linus Rath bdac27367c fix: keep the organisation's locks when the policy can't be fetched 2026-11-01 04:20:02 +01:00
Linus Rath 123018f322 feat: add the policy sections and admin pages for the enterprise features 2026-11-01 04:20:02 +01:00
Linus Rath 84de2395f0 fix: keep trusted senders from loading remote content anywhere while the organisation blocks it 2026-11-01 03:27:49 +01:00
Linus Rath d2a83a4ee9 fix: stop proxying locale rewrites back to the server when it listens on 127.0.0.1 #1487 2026-11-01 02:41:42 +01:00
Linus Rath d781e8762e Merge branch 'feat/multi-instance' 2026-11-01 01:43:15 +01:00
Linus Rath 2e5397c228 test: mock the wizard session refusal in the setup telemetry consent test 2026-11-01 01:35:20 +01:00
Linus Rath 3f02ae0448 test: add multi-instance scenarios for a three-replica rig behind a round-robin load balancer #1066 2026-11-01 01:33:45 +01:00
Linus Rath be7fde157e test: expect the Pro shell to load shared folders with each login's own 2026-11-01 01:23:34 +01:00
Linus Rath eb56ea441f fix: list the User-Agent contact link as a non-request host 2026-11-01 01:22:17 +01:00
Linus Rath acf125a52b test: fail when server state skips the shared store without a listed reason #1066 2026-11-01 01:12:49 +01:00
Linus Rath 3a9aef7c50 feat: move plugins, themes, branding and the signing key with the shared-store import and export #1066 2026-11-01 01:08:34 +01:00
Linus Rath 70a7e1227c fix: drop files of removed plugins on export and read only the approval files on import #1066 2026-11-01 01:07:30 +01:00
Linus Rath ac29a94fc3 fix: cap the plugin packages kept for approval review and sweep broken kept-version folders #1066 2026-11-01 01:04:51 +01:00
Linus Rath dcecd50b7f fix: keep up to 256 rendered branding images per kind, enough for many domains #1066 2026-11-01 01:03:33 +01:00
Linus Rath 38bc06f2d3 fix: answer 503 for plugin lists and marketplace installs while the shared store is down #1066
directory-keys-shared.test.ts: the store-down case now expects the store error instead of an 'invalid' signature, since a store outage no longer counts as a bad signature.
2026-11-01 01:03:13 +01:00
Linus Rath d78ce02f78 fix: refuse a plugin install that can't hold the registry lock and a bundle that doesn't match its entry #1066 2026-11-01 01:01:19 +01:00
Linus Rath 750f3114c1 fix: keep an old plugin's bundle hash when the shared store hiccups while it is fixed #1066 2026-11-01 00:58:33 +01:00
Linus Rath b39e3e27ac fix: cache a plugin signature only when it verifies for the cached bundle #1066 2026-11-01 00:57:21 +01:00
Linus Rath d9f4bdd9be fix: keep serving a plugin unsigned when its first signature can't be stored 2026-11-01 00:55:51 +01:00
Linus Rath 256855b294 fix: refuse to sign plugins on an instance whose signing key differs from the others #1066 2026-11-01 00:54:57 +01:00
Linus Rath 00e28e5f83 Merge branch 'feat/multi-instance' into feat/multi-instance-ext 2026-11-01 00:52:04 +01:00
Linus Rath 391f22cf7d test: open attachments through the bar's tile button in the blob routing tests 2026-11-01 00:51:10 +01:00
Linus Rath f25b9ea34b fix: keep hidden buttons on attachment cards from catching taps 2026-11-01 00:48:41 +01:00
Linus Rath 23b50f8268 test: read the wrapped mkdir in the Dockerfile as one command 2026-11-01 00:47:30 +01:00
Linus Rath c0c1a8f0fb test: give the config route test the logger calls config-manager now makes 2026-11-01 00:46:42 +01:00
Linus Rath e94d9c4326 fix: translate the attachment bar strings into every language 2026-11-01 00:45:33 +01:00
Linus Rath 905d841be4 chore: drop the outdated Stalwart/RocksDB warning from files 2026-11-01 00:41:41 +01:00
Linus Rath ecdd2b54fe chore: name the app Bulwark Webmail in exported files, outgoing requests and the manifest 2026-11-01 00:41:21 +01:00
Linus Rath 77a06a8aa0 fix: stop logging that the shared store is unreachable while its first connection is still being made 2026-11-01 00:39:01 +01:00