Commit Graph
4257 Commits
Author SHA1 Message Date
Linus Rath 37b8cc0640 test: count settings rows and Pro bodies in the frames that draw them 2026-11-02 19:39:09 +01:00
Linus Rath d2205b9c09 Merge branch 'feat/boot-skeleton-cfa' into feat/boot-skeleton
# Conflicts:
#	app/boot-skeleton.css
2026-11-01 19:59:52 +01:00
Linus Rath 63e62865d6 Merge branch 'feat/boot-skeleton-settings' into feat/boot-skeleton
# Conflicts:
#	app/boot-skeleton.css
2026-11-01 19:59:39 +01:00
Linus Rath 3428291acf perf: draw only the page's own body in its hidden Pro frame 2026-11-01 19:59:03 +01:00
Linus Rath 01303110cf Merge branch 'feat/boot-skeleton-pro' into feat/boot-skeleton 2026-11-01 19:50:56 +01:00
Linus Rath 73916cf42e feat: keep the Pro skeleton over a standard page until the Pro workspace takes it over 2026-11-01 19:47:30 +01:00
Linus Rath b6ca61f8a7 feat: draw the new-contact form while the app loads on /contacts/new 2026-11-01 19:47:19 +01:00
Linus Rath 3b27a69d66 fix: end the Mountain View top bar skeleton with the account avatar 2026-11-01 19:47:19 +01:00
Linus Rath e113411300 feat: match the settings skeleton's section row to the open page 2026-11-01 19:46:59 +01:00
Linus Rath 96243169d7 fix: wait for the settings page before scrolling to a linked section 2026-11-01 19:46:58 +01:00
Linus Rath 57c1d5d472 feat: show the contacts, files and plugin page shapes while the app loads 2026-11-01 19:36:09 +01:00
Linus Rath 7efae37645 fix: mark the active Pro tab and draw the stored tab count in the skeleton 2026-11-01 19:27:43 +01:00
Linus Rath b386bdf656 feat: draw the linked page's skeleton while a connector link opens 2026-11-01 19:24:13 +01:00
Linus Rath 5166cd0a5a feat: show the settings page's shape while the app loads 2026-11-01 19:24:13 +01:00
Linus Rath 3ba57f2b41 feat: keep the Pro skeleton up until the Pro workspace is ready 2026-11-01 19:24:00 +01:00
Linus Rath 4ea0292d78 feat: draw the Pro workspace's tabs and panes while the app loads 2026-11-01 19:24:00 +01:00
Linus Rath 8ae78fe641 feat: read the Pro tabs before the first paint 2026-11-01 19:15:54 +01:00
Linus Rath 8130074680 ci: run the boot skeleton guard with the perf guard 2026-11-01 19:04:47 +01:00
Linus Rath cb8aaa4031 test: check each page's first screen without scripts and its layout shift 2026-11-01 19:04:47 +01:00
Linus Rath dce1ed9ca6 refactor: split each page skeleton into its frame and its content 2026-11-01 18:51:40 +01:00
Linus Rath 441371554b feat: draw the rail's add app button in the page skeleton 2026-11-01 18:48:01 +01:00
Linus Rath 8d790b29fd feat: show the page's skeleton on Lite pages while their language loads 2026-11-01 18:41:58 +01:00
Linus Rath 943276696b feat: paint the saved theme, density and layout before the app loads 2026-11-01 18:41:58 +01:00
Linus Rath f5ed12f5cb refactor: keep the density tables and legacy settings tabs in plain modules 2026-11-01 18:41:36 +01:00
Linus Rath a3d4853974 fix: hide out of office when the account lacks the vacation permission #1488 2026-11-01 17:48:11 +01:00
Linus Rath c4d9a918bf feat: let admins preset and lock where a new search looks #1485 2026-11-01 17:44:37 +01:00
Linus Rath e4338ac47d feat: add the Search in setting to Message list settings #1485 2026-11-01 17:44:15 +01:00
Linus Rath 3c2eb9bffa feat: let a new search look only in the open folder #1485 2026-11-01 17:43:51 +01:00
Linus Rath aaafe428fe test: expect the full send options in the Pro compose draft account test #523 2026-11-01 17:40:53 +01:00
Linus Rath 52350876fd fix: label the offline and version API routes in metrics and error reports 2026-11-01 17:40:33 +01:00
Linus Rath 300d49a917 test: give the push prompt test's settings store mock the calendar sync bridge 2026-11-01 17:38:58 +01:00
Linus Rath 1b2281a4fc fix: stop the sidebar re-rendering on every message open #1486 2026-11-01 17:36:29 +01:00
Linus Rath 42a09f573d fix: let the Lite host scan accept the licence links in the PST worker 2026-11-01 17:26:31 +01:00
Linus Rath 296f728605 fix: copy the PST worker build script into the Docker image 2026-11-01 17:26:13 +01:00
Linus Rath 7e88eeaa60 test: send archived items without accountId like Stalwart does for regular users #1480 2026-11-01 17:25:23 +01:00
Linus Rath d70b51f097 fix: show deleted messages to recover on Stalwart 1.0 #1480 2026-11-01 17:24:09 +01:00
Linus Rath 1e35721505 Merge branch 'feat/enterprise-pack' 2026-11-01 15:44:44 +01:00
Linus Rath 69068d1b82 Merge branch 'feat/enterprise-pack-f' 2026-11-01 15:04:14 +01:00
Linus Rath 9ce7927627 fix: keep the old build's offline files from coming back after a deploy #523 2026-11-01 14:49:14 +01:00
Linus Rath 562a3270e3 test: cover the external recipient warning and lost-message naming in the offline spec #523 2026-11-01 14:37:39 +01:00
Linus Rath 4b60fcc1e6 fix: make the offline outbox never send twice, never lose mail silently and never skip a plugin #523
The review of offline mode found ways to send a message twice, to lose
unsent mail without a word, and to send mail without its signing,
encryption or check plugin. This fixes them and the smaller findings:

- each outbox message is taken for sending in one database transaction
  under a Web Lock per account; only a failure before the submission
  request (SendNotStartedError from the client) puts it back, any other
  one marks it "may have gone out"; read-backs after the submission no
  longer fail a send; a send of a closed tab turns uncertain after a minute
- every sign-out the user didn't confirm names the deleted messages on
  the sign-in page, or in a toast when another account stays signed in
- nothing is queued while an enabled plugin isn't running (after a start
  without the network none can); the composer says why
- the outbox waits for a fresh policy and holds messages the rules have
  since made stricter (a required label, a required send check)
- another tab switching offline mode off sticks: only switching it on
  may create the database
- only attachments of kept messages are kept, filed with their message,
  deleted with it and under the cap between syncs; file names and types
  are sealed; folders that went away leave the scope, and a folder that
  couldn't be asked keeps its mail without holding the others back
- a group scope that forbids offline mode waits until the account's
  groups are known; one server down no longer holds another's mail
- an offline start only when the server is really unreachable, and the
  real sign-in follows by itself once it answers
- the service worker files pages and chunks under the build that served
  them, and the shell list of another build isn't kept under this one
- a raw send counts as the composer's only from the plugin running its
  takeover, for that identity
- errors and refusals are in all languages; the banner tells "offline"
  from "server can't be reached"; outbox buttons name their message;
  changes and messages go in the order they were made
2026-11-01 14:19:54 +01:00
Linus Rath 52188f54d6 Merge branch 'feat/enterprise-pack' into feat/enterprise-pack-f 2026-11-01 13:50:22 +01:00
Linus Rath e9b235bab2 Merge branch 'main' into feat/enterprise-pack
# Conflicts:
#	components/admin/admin-shell.tsx
#	lib/admin/outgoing-hosts-registry.ts
#	lib/admin/reachable-hosts.ts
#	scripts/lite/build.mjs
#	stores/policy-store.ts
2026-11-01 13:46:59 +01:00
Linus Rath c32c78894a fix: keep saving an out-of-office reply working when its calendar block can't be synced 2026-11-01 13:33:42 +01:00
Linus Rath b196455720 test: give the plugin vacation API test the client methods the out-of-office calendar sync reads
The out-of-office calendar block (package B) syncs from the vacation store, so the plugin vacation API now reaches client.getAccountId and supportsCalendars. The real client has both; the test's mock client didn't, so two cases threw. The mock gains them; no assertion changed.
2026-11-01 13:25:01 +01:00
Linus Rath 2f8cbaa92e fix: let the Lite build pass with the offline and version endpoints it never calls #523 2026-11-01 13:13:18 +01:00
Linus Rath 1769de5b93 fix: let a new build's service worker take over while the old one still fetches the offline shell #523 2026-11-01 13:08:59 +01:00
Linus Rath 0b51a06fbc fix: take over with the new build's service worker also when it was still installing #523 2026-11-01 12:56:28 +01:00
Linus Rath eb26219b3c feat: send telemetry error counts within a minute when an admin turns on instant mode 2026-11-01 12:55:58 +01:00
Linus Rath 46012f2b80 test: cover offline mode, the outbox and the reload after a deploy against the test servers #523 2026-11-01 12:48:46 +01:00