Commit Graph
4346 Commits
Author SHA1 Message Date
Szymon Chroboczek a8106d9617 fix: expand contact groups into calendar attendees 2026-11-02 23:10:47 +01:00
Linus Rath 72117c8a71 Merge branch 'main' into feat/proofreading
# Conflicts:
#	components/admin/admin-shell.tsx
2026-11-02 21:27:17 +01:00
Linus Rath 1d2f19f593 Merge branch 'main' of https://github.com/bulwarkmail/webmail 2026-11-02 21:11:48 +01:00
Linus Rath f0477bc4fd fix: keep the composer's proofreading off the plugin store, and safe with a stand-in editor #1397 2026-11-02 21:08:35 +01:00
Linus Rath dfbeeed142 test: check proofreading at phone width and right to left #1397 2026-11-02 20:59:25 +01:00
Linus Rath 42d1143df1 fix: mark the plugin proxy's no-third-party refusal as the proxy's own error 2026-11-02 20:57:56 +01:00
Linus Rath 8778c74d3a fix: stop plugins widening right-to-left pages with their hidden frame 2026-11-02 20:56:37 +01:00
Linus Rath ac375c4d3d fix: log a proofreading check that fails, with an opt-in debug log for checker authors #1397 2026-11-02 20:46:06 +01:00
Linus Rath 7e624e9bb0 Merge branch 'feat/boot-skeleton' 2026-11-02 20:28:26 +01:00
Linus Rath a3e83c0290 refactor: drop an unused constant from the message skeleton 2026-11-02 20:28:21 +01:00
Linus Rath 6055dac1cb fix: keep proofreading text from plugins that shouldn't get it, and work it by keyboard #1397
A security and an accessibility review of the proofreading hook found
gaps, fixed here.

What leaves the browser:
- A checker gets a name for each composer of its own, not the composer's
  id, so it can't reach the message through the other api.composer calls
  after proofreading stops.
- Checking pauses while a plugin that can sign or encrypt is turned on but
  still starting, and while the policy couldn't be fetched (the built-in
  defaults could undo an admin's lock).
- No plugin can hold up turning proofreading off (onBeforeSettingChange).
- Suggestions can't carry zero-width, bidi or line-separator characters;
  messages lose bidi overrides; a flood of annotations is cut off early.
- The notices name the plugin as installed, not a label it chose, and say
  that text written before signing or encryption was turned on may
  already have been checked.
- A checker registered during start-up no longer fails its first check.

Keyboard and screen readers:
- Escape in the issue panel closes the panel, not the message.
- Underlines carry aria-invalid, as the browser's own markers do.
- The focus goes somewhere sensible when a button or an issue goes away,
  Tab past the popup's edges goes back to the text, and the shortcuts work
  in the popup and the panel.
- Ctrl+' and Ctrl+; follow the character typed, so other layouts keep
  their own keys (Ctrl+S on Dvorak), with Ä and Ö on German keyboards.
- The popup is described by its message, sits inside a modal composer,
  fits narrow screens, and the panel fits a phone.
2026-11-02 20:26:21 +01:00
Linus Rath 1a3377c6e1 fix: keep a linked message's reader still when the message arrives 2026-11-02 20:24:47 +01:00
Linus Rath ceffe745b3 Merge pull request #1498 from HOLOEYE-JZ/feat/plugin-calendar-task-view 2026-11-02 20:24:23 +01:00
Linus Rath 8ec4e1954a Merge pull request #1497 from HOLOEYE-JZ/feat/plugin-dialog-anchor 2026-11-02 20:24:04 +01:00
Linus Rath d37fa4de44 Merge pull request #1496 from HOLOEYE-JZ/feat/plugin-side-panel 2026-11-02 20:24:02 +01:00
Linus Rath cd99a5a410 Merge pull request #1495 from HOLOEYE-JZ/feat/plugin-task-reminders 2026-11-02 20:24:01 +01:00
Linus Rath 51a0481718 Merge pull request #1479 from tobiasge/feat/plugin-calendar-birthdays 2026-11-02 20:24:00 +01:00
Linus Rath 7b59f2562f Merge pull request #1493 from ibayue/feat/signature-insert-toggles 2026-11-02 20:23:58 +01:00
Linus Rath 42add9400c Merge pull request #1502 from pirate/fix/mailbox-pagination-only 2026-11-02 20:23:57 +01:00
Linus Rath 45c1d9b3d6 Merge pull request #1499 from Schrobo/fix/shared-mailbox-push-target 2026-11-02 20:23:56 +01:00
Linus Rath b8aa44c16f Merge pull request #1492 from shadow1runner/feat/template-inline-images 2026-11-02 20:23:55 +01:00
Linus Rath e3fb3df5b0 fix: say in the tasks permission that a plugin may replace the task list #1498 2026-11-02 20:22:40 +01:00
Linus Rath 68dd11a30f fix: show the built-in task list when a plugin's task view does not draw #1498 2026-11-02 20:19:43 +01:00
Linus Rath 8ef3ad901e fix: page large folder lists on stalwart 1.0 and retry when mail arrives mid-load #1502 2026-11-02 20:18:49 +01:00
Linus Rath 1a3306322f fix: let only plugins that may change the calendar or tasks silence a reminder #1495 2026-11-02 20:17:11 +01:00
Linus Rath 2b7f5b1b4e Merge branch 'feat/boot-skeleton' 2026-11-02 20:16:37 +01:00
Linus Rath 29e7a5b8c7 fix: give plugins the birthdays whose day overlaps the asked range #1479 2026-11-02 20:15:59 +01:00
Linus Rath 244e8b7b5a fix: keep the login and mailbox owner in notification links on safari 16 #1499 2026-11-02 20:15:34 +01:00
Linus Rath 0c421f5557 test: cover opening the shared inbox from a grouped notification #1499 2026-11-02 20:15:33 +01:00
Linus Rath f1b2c20f1d chore: undo stray formatting changes from the signature toggles #1493 2026-11-02 20:15:29 +01:00
Linus Rath d70f058ec7 fix: keep the signature delimiter on by default for new users #1493 2026-11-02 20:15:13 +01:00
Linus Rath 14e1ab5f26 test: cover quick reply with the reply signature toggle off #1493 2026-11-02 20:14:49 +01:00
Linus Rath 52330cbd07 fix: keep inserting signatures for existing users by default #1493 2026-11-02 20:14:48 +01:00
Linus Rath 0c8ca9ceff fix: close the calendar column rule the merge left open 2026-11-02 20:13:27 +01:00
Linus Rath 39e137fd22 test: check proofreading in the browser with a test checker plugin #1397 2026-11-02 20:07:55 +01:00
Linus Rath 43a18d2140 fix: keep the issue popup open when the list moves the focus to the text #1397 2026-11-02 20:07:52 +01:00
Linus Rath 0bacfb389e Merge branch 'feat/boot-skeleton-mail' into feat/boot-skeleton
# Conflicts:
#	app/boot-skeleton.css
#	lib/boot-skeleton/boot-script.ts
2026-11-02 20:01:22 +01:00
Linus Rath 3241f17c44 fix: open a folder from anywhere in its sidebar row #1501 2026-11-02 19:57:58 +01:00
Linus Rath b623cd388d perf: leave the Pro frame's panes empty on standard pages 2026-11-02 19:55:32 +01:00
Linus Rath e9c4fb095f feat: let a checker that checks only when asked work with compose:read #1397 2026-11-02 19:52:31 +01:00
Linus Rath 3db7b745d0 Merge branch 'feat/boot-skeleton-calendar' into feat/boot-skeleton
# Conflicts:
#	app/boot-skeleton.css
#	components/boot-skeleton/shell.tsx
2026-11-02 19:51:39 +01:00
Nick Sweeting c862909fdd fix: respect single-call paging and preserve folders on page failures 2026-11-02 10:50:50 -08:00
Linus Rath 3530e056ce fix: leave an empty line above the signature delimiter in replies #1503 2026-11-02 19:49:23 +01:00
Linus Rath 5fc65b47cc feat: let admins require or turn off proofreading per group and plugin #1397 2026-11-02 19:46:01 +01:00
Linus Rath 67549d5f54 feat: show proofreading suggestions in a popup and an issue list in the composer #1397 2026-11-02 19:46:00 +01:00
Linus Rath e47eceb242 feat: draw the calendar toolbar's own words and task list in its skeleton 2026-11-02 19:42:52 +01:00
Linus Rath 90044b9d5a perf: draw the mail skeleton's rows with less markup 2026-11-02 19:42:40 +01:00
Linus Rath 56678fd499 Merge branch 'feat/boot-skeleton-auth' into feat/boot-skeleton
# Conflicts:
#	components/boot-skeleton/shell.tsx
2026-11-02 19:42:04 +01:00
Linus Rath 1d90e6f638 fix: keep skeleton placeholders visible on sidebars in dark mode 2026-11-02 19:40:30 +01:00
Linus Rath 37b8cc0640 test: count settings rows and Pro bodies in the frames that draw them 2026-11-02 19:39:09 +01:00