Jacob Zeitz and Claude Opus 5.5
372fc9ec71
feat: let plugins update and remove the tags they added
...
keywords.add now records the plugin on each definition it adds
(addedBy). keywords.update changes the label, colour or visibility of
those definitions, never their id; keywords.remove deletes them, as
Settings > Tags does, and leaves the keywords on messages alone. Both
need settings:write and skip every other definition, so a plugin cannot
rename or delete the user's own tags or another plugin's.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-24 08:54:23 +02:00
Linus Rath
b586dc467c
fix: keep a plugin's passphrase dialog open while the user types #1302
2026-10-20 21:01:02 +02:00
Linus Rath
d9d6eb9be7
feat: let plugins search the settings and read the user's preferences
2026-10-20 20:27:08 +02:00
Linus Rath
647c24132c
feat: let plugins read the app's name and version with api.app.getInfo
2026-10-20 20:19:38 +02:00
Linus Rath
a191ef8b02
feat: let plugins search mail with api.email.search
2026-10-20 18:16:29 +02:00
Linus Rath
95003fd28b
feat: let a plugin panel start folded until the user or the plugin opens it
2026-10-20 17:21:13 +02:00
Linus Rath
95bfb1681c
feat: let a plugin's panel frame fill the panel and scroll inside
2026-10-20 17:21:13 +02:00
Linus Rath
2bb5a62ac4
feat: let a plugin open, close and toggle the panel its slot sits in
2026-10-20 17:21:13 +02:00
Linus Rath
1f11cc7249
fix: stop talking to a plugin frame once it has navigated to another document
2026-10-19 01:32:27 +02:00
Linus Rath
685ce7f469
fix: keep plugin POSTs off the plugin proxy, secrets, agenda, ical and translate routes
2026-10-19 01:04:45 +02:00
Linus Rath
1e992e6c7f
fix: check plugin dropdown messages before the host draws them
2026-10-18 14:39:59 +02:00
Linus Rath
7573471544
fix: keep plugins from reading mail of other connected logins #1273
2026-10-18 14:39:58 +02:00
Linus Rath
5aba2a92c5
Merge pull request #1251 from tobiasge/feat/plugin-ui-kit-combobox
...
feat(plugins): add Combobox component to UI kit with host floating dropdown portal
2026-10-18 14:34:26 +02:00
Linus Rath
24e7e738bd
Merge pull request #1274 from alyyousuf7/fix/plugin-email-get-shared-accounts
...
fix: let api.email.get read a listed message of a shared account
2026-10-18 14:34:18 +02:00
Linus Rath
86d6c78ce7
fix: keep a plugin slot's callbacks working when its props change while it loads #1266
2026-10-18 13:46:47 +02:00
Ali Yousuf
6fe9f8f7f1
fix: let api.email.get read a listed message of a shared account
...
doEmailGet asked the signed-in account for every id, so a message in a
folder shared from another account came back as null even though it was
in the list. A message in the loaded list is now read from the account
that owns it, through resolveEmailBlobContext like attachment downloads.
getAttachment and getRaw keep reading from the signed-in account only.
Fixes #1273
2026-10-17 18:41:31 -04:00
Tobias Genannt
d6d3683b65
feat(plugins): add Combobox component to UI kit with host floating dropdown portal
...
- Add Combobox component supporting single and multiselect modes, search filtering, and clear button
- Implement floating dropdown bridge and host slot portal so dropdown renders cleanly outside plugin iframe
- Fix clear button and chip removals to not unexpectedly open the dropdown
- Add comprehensive unit tests covering Combobox options, clear behavior, multiselect, and bridge communication
2026-10-16 10:08:27 +02:00
Linus Rath
3d5c46bbcf
fix: make plugin sidebar rows as tall as folder rows on phones
2026-10-14 18:49:56 +02:00
Linus Rath
9affb1c9b9
fix: show plugins the message that was already open when they start
2026-10-14 18:49:22 +02:00
Linus Rath
c6ec58e5cc
fix: keep a compact info bar's text on one line next to its icon
2026-10-14 14:22:13 +02:00
Linus Rath
60fe6f159a
fix: keep plugin frames on the page's theme when it changes outside the theme store
2026-10-14 14:16:32 +02:00
Linus Rath
7464e4db93
fix: reset the browser's button look on kit components that are a button themselves
2026-10-14 14:08:41 +02:00
Linus Rath
d808f2d671
feat: add side panels, detail rows, colour dots and labelled check boxes to the plugin UI kit
2026-10-14 14:04:46 +02:00
Linus Rath
9d7dc4fc4e
fix: stop plugin frames from painting a white backdrop in dark themes
2026-10-14 14:02:40 +02:00
Linus Rath
19967fa3fb
feat: let plugins add options to the composer's Options menu as check items
2026-10-14 11:50:52 +02:00
Linus Rath
9d8f762b1d
feat: let a plugin title its sidebar section
2026-10-14 11:47:25 +02:00
Linus Rath
6098c1f928
feat: add a change preview to the plugin UI kit
2026-10-14 11:42:12 +02:00
Linus Rath
5d83d76436
feat: let plugins open a reply to the open message with text to start from
2026-10-14 11:37:51 +02:00
Linus Rath
cbeeca3ea5
feat: let plugins edit the message being written from composer buttons and menus
2026-10-14 11:35:00 +02:00
Linus Rath
1bd4f743a1
feat: give plugins the app's own controls and draw their dialogs like the app's dialogs
2026-10-14 11:10:14 +02:00
Linus Rath
607f1b2496
feat: let plugin notifications carry a link to the plugin's own server
2026-10-14 10:58:19 +02:00
Linus Rath
7f7f6bf949
fix: check the name, type and size of blobs plugins upload, and the email id of email.setKeyword and email.removeKeyword
2026-10-14 10:00:03 +02:00
Linus Rath
78f72e0c03
fix: give plugins settings that change after they started, let their frames copy to the clipboard and tell them the user's time zone
2026-10-14 09:01:03 +02:00
Linus Rath
c3cf0ddcff
feat: tell plugins whether the admin has set up their accounts and keys
2026-10-14 08:24:28 +02:00
Linus Rath
1e62fbbee1
fix: start each plugin once, so its hooks don't fire twice
2026-10-14 08:22:55 +02:00
Linus Rath
289e975d38
fix: give large attachment offloads time to finish and let cloud pickers write links into the text
2026-10-14 07:40:32 +02:00
Linus Rath
ae2130f5c8
feat: let a plugin ask a question on top of its own dialog
2026-10-14 06:47:53 +02:00
Linus Rath
929ccb8bee
fix: stream answers to proxied requests that send a body, and allow keyless services the admin sets up
2026-10-14 06:42:40 +02:00
Linus Rath
85c6cbcac8
feat: let plugins move messages between folders and archive them
2026-10-14 06:31:07 +02:00
Linus Rath
72be961383
feat: let plugins create repeating events under a stable id of their own
2026-10-14 06:29:15 +02:00
Linus Rath
1f89e89ce5
feat: let plugins refresh their message-list badges, which now need only the read permission
2026-10-14 06:26:10 +02:00
Linus Rath
49511dff38
feat: let plugins read their own non-secret admin settings without the admin permission
2026-10-14 06:23:10 +02:00
Linus Rath
e9b2ef3258
fix: let plugin frames use forms without letting them post anywhere
2026-10-14 06:19:12 +02:00
Linus Rath
8bf4df4513
feat: add a notifications panel for plugin notifications and app errors
2026-10-14 05:25:16 +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
3a83c00e00
feat: describe every place a plugin can show UI in one catalogue, with a permission for each area
2026-10-14 04:31:43 +02:00
Linus Rath
437bb1d11a
test: require every plugin permission to gate a method, hook or slot
2026-10-14 04:28:24 +02:00
Linus Rath
3a65964d26
feat: let plugins show notifications that name the plugin
2026-10-14 04:26:16 +02:00