Commit Graph
4364 Commits
Author SHA1 Message Date
Linus Rath f6e0b760d5 fix: keep an HTML description's format when duplicating an event 2026-11-02 22:52:04 +01:00
Linus Rath 7ab900a0f7 fix: save an edited HTML event description as plain text and keep notes in its format 2026-11-02 22:52:04 +01:00
Linus Rath 798f0ca0c8 fix: show an HTML event description as text instead of its markup 2026-11-02 22:52:04 +01:00
Linus Rath 8c1556117d fix: quote the text part in a rich reply when the html part is a bare wrapper without line breaks 2026-11-02 22:52:04 +01:00
Linus Rath c29a01a133 fix: add a cloud attachment link in the format the message has when the upload finishes 2026-11-02 22:52:04 +01:00
Linus Rath 2ae9e9c2f9 fix: turn quoted lines back into a quote when switching a reply to rich text 2026-11-02 22:52:04 +01:00
Linus Rath dfb946541f fix: keep quote markers, list markers and image alt text when switching a reply to plain text 2026-11-02 22:52:04 +01:00
Linus Rath 732175772c fix: carry a plugin's template or signature change into both rich and plain-text drafts 2026-11-02 22:52:04 +01:00
Linus Rath f8d45d9497 fix: give plugins and plugin forwards the text of an HTML-only mail, not its markup 2026-11-02 22:52:03 +01:00
Linus Rath 4bf676dec1 fix: keep the vacation reply's plain-text part in step with its HTML after a reload 2026-11-02 22:52:03 +01:00
Linus Rath 54c9c2f353 fix: stop the vacation page saving over and over after an HTML reply is saved 2026-11-02 22:52:03 +01:00
Linus Rath 708bc42414 fix: keep line breaks and quoted text when printing a plain-text email 2026-11-02 22:52:03 +01:00
Linus Rath 877aadbb06 fix: reopen drafts from the pro view in the format they were written in 2026-11-02 22:52:03 +01:00
Linus Rath 45a7f2ec6a fix: show an HTML-only signature in the identity list 2026-11-02 22:52:03 +01:00
Linus Rath 0d2fdc44f4 fix: keep angle brackets and ampersands in plain-text templates and placeholder values 2026-11-02 22:52:03 +01:00
Linus Rath 86781b8a43 ci: run the unit tests in four parallel shards 2026-11-02 22:50:28 +01:00
Linus Rath 7cf7332255 fix: show one new-version toast however many builds go out while a tab is open 2026-11-02 22:22:31 +01:00
Linus Rath 0e801edcf2 fix: save a rich text draft as an HTML template and edit it in the rich editor #1506 2026-11-02 22:06:02 +01:00
Linus Rath 6990abff45 fix: keep the proofreading forced-colours rules after the main forced-colours block #1397 2026-11-02 22:03:06 +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