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