Commit Graph
2363 Commits
Author SHA1 Message Date
Linus Rath e9e07ddb64 Merge main into feat/assistant-everywhere 2026-11-03 01:35:57 +01:00
Linus Rath 55d9c81210 Merge more actions for the assistant (package C) 2026-11-03 01:13:47 +01:00
Linus Rath d68970126e feat: tell plugins when the open message's attachments can't be read from this login 2026-11-03 00:33:59 +01:00
Linus Rath 9ce4d01807 fix: keep the reader still while the list changes, and give Pro tabs no list ticks 2026-11-03 00:30:56 +01:00
Linus Rath e716f529cd test: match template sync and server-state guard to current behaviour 2026-11-03 00:29:56 +01:00
Linus Rath 08bc05a20b Merge branch 'feat/assistant-everywhere' into feat/assistant-b 2026-11-03 00:24:50 +01:00
Linus Rath 267ca40522 Merge branch 'feat/assistant-everywhere' into feat/assistant-c 2026-11-03 00:24:12 +01:00
Linus Rath 82dff8035c Merge pull request #1507 from Schrobo/fix/calendar-contact-group-attendees
fix: expand contact groups into calendar attendees
2026-11-03 00:02:05 +01:00
Linus Rath 363c797178 feat: let a plugin dialog fill the window's visible height, so a chat fits above a phone's keyboard 2026-11-02 23:59:57 +01:00
Linus Rath ad36f8d382 fix: show the side panel only where the plugin does, and keep it steady
- The button and the panel of Calendar, Contacts, Files and Settings
  show only when the plugin's shouldShow says yes, so a plugin switched
  off for these views (admin, user or no service) leaves no button that
  opens an empty panel, and no extra rows in Contacts and Settings.
- Files: while the details are open the panel steps aside there only;
  the other views keep it as the user left it. With both stored open the
  details fold when the page loads.
- Resizing stops where the view keeps its 480 px, so a drag or the arrow
  keys no longer fold the panel away (and the handle keeps the focus).
- Settings and Contacts render the same element with or without the
  panel, so a form keeps what was typed when the panel starts docking.
- Contacts on a phone: the panel button sits over an open contact too.
- The panel buttons of the reader and the views have one name, "Plugin
  panel", with aria-pressed, and name the plugin's panel shortcut in
  their title; the open panels are named landmarks.

The reader tests look the button up by its new name and pressed state
(viewer-toolbar-over-side-panel, reader-plugin-surfaces,
viewer-plugin-panel-width), since "Show/Hide plugin panel" is gone.
2026-11-02 23:54:53 +01:00
Linus Rath 8905d31b38 fix: show the admin's locks for plain text and the reply identity on the composing page 2026-11-02 23:14:21 +01:00
Linus Rath 7dd5fe41c3 refactor: answer invitations from one place the reader's banner and plugins share 2026-11-02 23:14:21 +01:00
Szymon Chroboczek a8106d9617 fix: expand contact groups into calendar attendees 2026-11-02 23:10:47 +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 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 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 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 8139214aea feat: tell the reader panel which messages are ticked in the list 2026-11-02 22:12:01 +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 8fcd647215 feat: let plugins show a side panel next to Calendar, Contacts, Files and Settings 2026-11-02 21:59:36 +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 bda9e11d37 fix: give the Files details panel the same header height as the other side panels 2026-11-02 21:02:05 +01:00
Linus Rath 6db1f3d373 fix: give the composer's side panels the reader's button and header 2026-11-02 20:59:53 +01:00
Linus Rath c3da79e7d5 fix: keep the assistant panel's button in the same place with no message open 2026-11-02 20:55:26 +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 7b59f2562f Merge pull request #1493 from ibayue/feat/signature-insert-toggles 2026-11-02 20:23:58 +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 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 2b7f5b1b4e Merge branch 'feat/boot-skeleton' 2026-11-02 20:16:37 +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 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