Linus Rath
425eae2227
Merge branch 'slots/mail' into feat/plugin-system-audit
...
# Conflicts:
# lib/__tests__/plugin-slot-catalog.test.ts
2026-10-14 05:07:18 +02:00
Linus Rath
6f18173778
feat: let plugins add frames above and below the message text and entries to the composer's Send and Attach menus
2026-10-14 05:04:09 +02:00
Linus Rath
eb34caa381
feat: let plugins add entries to file menus and the selection toolbar, and a section to file previews
2026-10-14 04:58:21 +02:00
Linus Rath
6901978109
feat: let plugins add frames above the subject, under the sender, above the quote and above a conversation, and buttons to the reader toolbar and attachment menus
2026-10-14 04:56:55 +02:00
Linus Rath
14b1d4ea95
feat: let plugins add a section to task details and buttons to the task list toolbar
2026-10-14 04:48:29 +02:00
Linus Rath
5e71c22f56
feat: let plugins add a section to contact details and buttons for selected contacts
2026-10-14 04:46:08 +02:00
Linus Rath
d144a6e85c
feat: let plugins add sections to event details and the event form, and label calendar days
2026-10-14 04:43:40 +02:00
Linus Rath
8fbc8a1c1d
feat: let plugins add frames above and in an empty message list and buttons to message rows and the selection toolbar
2026-10-14 04:43:22 +02:00
Linus Rath
1ba53655e5
fix: let identity hooks stop a plugin's change, send notification clicks to plugins that show notifications, and mark reading mail as high risk
2026-10-14 04:37:24 +02:00
Linus Rath
8ad8f44e78
Merge branch 'feat/plugin-host-apis' into feat/plugin-system-audit
...
# Conflicts:
# lib/plugin-sandbox/permission-text.ts
# lib/plugin-sandbox/permissions.ts
# lib/protocol-handlers/mailto.ts
# locales/en/common.json
2026-10-14 04:34:14 +02:00
Linus Rath
5d9268c923
feat: let plugins add buttons, calendar day labels and pages, and use connected accounts from the sandbox
2026-10-14 04:31:43 +02:00
Linus Rath
ead925c1b8
feat: let plugins open a filled-in composer and save drafts
2026-10-14 04:23:17 +02:00
Linus Rath
60257bb732
feat: let users connect accounts for plugins in a dialog the plugin can't read, and disconnect them in settings
2026-10-14 04:14:13 +02:00
Linus Rath
1307280fd8
Merge branch 'hooks/settings' into feat/plugin-system-audit
2026-10-14 04:05:47 +02:00
Linus Rath
0a98ffa711
fix: give plugins plain message data, let them add only real messages to search results and skip a draft save
2026-10-14 04:05:43 +02:00
Linus Rath
c464ca2030
Merge branch 'hooks/mailstore' into feat/plugin-system-audit
2026-10-14 04:00:59 +02:00
Linus Rath
cc9553590c
Merge branch 'hooks/mailui' into feat/plugin-system-audit
2026-10-14 04:00:45 +02:00
Linus Rath
2fe865f108
feat: tell plugins when the server accepted a sent or scheduled message, but not an undone one
2026-10-14 03:58:58 +02:00
Linus Rath
7323310b21
feat: tell plugins about new inbox mail, sync progress and the live-update connection
2026-10-14 03:56:37 +02:00
Linus Rath
286cce6877
feat: tell plugins when messages are deleted, moved, archived, marked or tagged, and let them stop it
2026-10-14 03:54:40 +02:00
Linus Rath
e93c9f89ae
feat: tell plugins about the out-of-office reply, and let them stop a change to it
2026-10-14 03:52:00 +02:00
Linus Rath
7b2119456d
feat: let plugins stop or prefill the composer and mailto links, and tell them when it opens, closes and saves a draft
2026-10-14 03:50:55 +02:00
Linus Rath
f9c53e5582
feat: tell plugins when templates change or are inserted, and let them rewrite a template before it goes in
2026-10-14 03:45:12 +02:00
Linus Rath
74b194c3e5
feat: tell plugins about sender identity changes and the chosen From, and let them stop a change or rewrite the signature
2026-10-14 03:44:33 +02:00
Linus Rath
be26f96bea
Merge branch 'hooks/calendar' into feat/plugin-system-audit
2026-10-14 03:44:13 +02:00
Linus Rath
89452871fb
feat: tell plugins when an event reminder fires and when it is dismissed
2026-10-14 03:40:19 +02:00
Linus Rath
77c7589e04
Merge branch 'hooks/contacts' into feat/plugin-system-audit
2026-10-14 03:40:05 +02:00
Linus Rath
69dbc1b661
feat: tell plugins when a message body is on screen or a conversation unfolds, and let them rewrite links
2026-10-14 03:39:13 +02:00
Linus Rath
96f0681ab5
feat: tell plugins when files are uploaded, downloaded, deleted, renamed, moved or copied, and let them stop it
2026-10-14 03:36:13 +02:00
Linus Rath
c02aa4f3ed
feat: show plugin badges next to the subject in message-list rows
2026-10-14 03:30:00 +02:00
Linus Rath
8ec7dc54ab
feat: tell plugins when contacts are opened, selected, moved or imported and when groups change
2026-10-14 03:27:50 +02:00
Linus Rath
1ae73ceac1
feat: tell plugins when events are opened, created, changed, deleted, answered or imported, and let them stop changes
2026-10-14 03:26:39 +02:00
Linus Rath
96f8aa6a63
feat: tell plugins when contacts are created, changed or deleted, and let them stop it
2026-10-14 03:24:19 +02:00
Linus Rath
606861eb71
feat: tell plugins about the app's lifecycle and navigation on every page, not only in mail
2026-10-14 03:19:54 +02:00
Linus Rath
8ef7ec022f
fix: deliver a plugin OAuth callback only to the plugin that started the flow
2026-10-14 03:04:17 +02:00
Linus Rath
fe4f809092
fix: keep a plugin side panel from squeezing the message too narrow to read
2026-10-14 03:00:46 +02:00
Linus Rath
3bfc0e69d0
fix: check attachments a plugin adds to the composer and keep callbacks out of shouldShow
2026-10-14 02:58:47 +02:00
Linus Rath
03e9846758
fix: stop remounting message-details plugin slots on every render
2026-10-14 02:56:15 +02:00
Linus Rath
2adb1e2b12
fix: size toolbar plugin slots to their content and give composer plugin buttons their own row
2026-10-14 02:53:46 +02:00
Linus Rath
f048db7b52
fix: count each plugin hook failure once and keep a plugin that kept failing turned off
2026-10-14 02:33:45 +02:00
Linus Rath
8f70951555
fix: give plugins their default settings and apply setting changes without a reload
2026-10-14 02:21:45 +02:00
Linus Rath
ff1d1f399d
fix: limit plugin dialogs to one at a time, name the plugin in each and offer to turn it off
2026-10-14 02:15:45 +02:00
Linus Rath
be3debdcb4
fix: never send a message when a plugin that checks it before sending fails or does not answer
2026-10-14 02:11:59 +02:00
Linus Rath
e720be7e17
feat: let users install their own plugins, with admin review of the actual code
...
The admin page offered "User Plugin Uploads" and "Require Admin
Approval", but nothing in Settings used them: there was no upload, no
uninstall and no way to ask for approval, and the admin had no list of
requests. The approval code that existed pinned a hash of the code only
and showed the admin a manifest the browser sent, never the code.
Now:
- Settings > Plugins has an install button (when uploads are allowed),
a remove button for the user's own plugins, and lists in plain
language what each plugin may do, high-risk items first
- an install sends the ZIP to the server, which reads the manifest and
code itself and pins the request to a hash of both
- the admin Plugins tab lists requests with the code and approves or
denies them; a user may have 10 open requests
- a user plugin is checked again on every start, so a revoked approval
or turning user plugins off takes effect
- the consent dialog and the plugin settings are translated, use the
theme colours, and show the sites a plugin may send data to
2026-10-14 02:03:26 +02:00
Linus Rath
c45533646e
fix: give slot plugins the message, event or contact only with the matching read permission
2026-10-14 01:31:30 +02:00
Linus Rath
67a36c59d9
fix: keep the contact name readable when the detail pane is narrow
2026-10-14 00:40:18 +02:00
Linus Rath
3138c2bd04
fix: stop dropped files from inserting their path into the message body
2026-10-13 16:58:19 +02:00
Linus Rath
e0f60c0946
Merge branch 'main' of https://github.com/bulwarkmail/webmail
2026-10-13 15:58:52 +02:00
Linus Rath
c878e51fce
fix: clear a calendar's default reminders with an empty list instead of null #1209
2026-10-13 15:56:10 +02:00
Linus Rath
82450f3345
feat: apply the current calendar defaults when an event switches back to them #1209
2026-10-13 15:56:10 +02:00