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
Linus Rath
3e202e73fd
feat: list every reminder and the calendar defaults in the event popover #1209
2026-10-13 15:56:10 +02:00
Linus Rath
1730d7bab4
feat: set default reminders for each calendar in calendar management #1209
2026-10-13 15:56:10 +02:00
Linus Rath
8181f5ba0c
feat: start new events on the calendar's default reminders #1209
2026-10-13 15:56:10 +02:00
Linus Rath
4e983e3e4e
feat: choose notification or email for each event reminder #1209
2026-10-13 15:56:09 +02:00
Linus Rath
3788446271
feat: let users hide shared mail accounts from the sidebar #1228
2026-10-13 15:55:54 +02:00
Linus Rath
e09676126b
feat: keep the selection while reading a message in mountain view #1231
2026-10-13 15:40:13 +02:00
Linus Rath
9cae33e3cb
feat: keep the mountain view compose window open while reading other mail #1229
2026-10-13 15:25:56 +02:00
Linus Rath
693d9613c0
feat: let users turn off the prompt before deleting several messages #1225
2026-10-13 15:16:05 +02:00
Linus Rath
435c1e0929
fix: select the rows shown between the two ends on shift-click #1230
2026-10-13 15:02:21 +02:00
Linus Rath
25cbbf8c10
fix: restore the full screen height when the iOS app resumes #1226
2026-10-13 14:53:23 +02:00
Linus Rath
8daa316c18
fix: show a mountain view message together with its conversation #1223
2026-10-13 14:48:58 +02:00
Linus Rath
6f281ef10a
fix: open mountain view threads as a conversation on the phone #1224
2026-10-13 14:35:12 +02:00
Linus Rath
ddab7c781f
feat: open several messages of a conversation at once in mountain view #1222
2026-10-13 14:24:47 +02:00
Linus Rath
94095cf86a
fix: paste a cell range as a table instead of an image #1233
2026-10-13 13:57:30 +02:00
Linus Rath
4d733aa598
chore: remove unused exports and the dead plugin error boundary
2026-10-13 13:36:51 +02:00
Linus Rath
c587ad459e
fix: keep the dark body backdrop full width in Mountain View and show Gmail's help button
2026-10-12 02:00:02 +02:00
Linus Rath
66122ae652
feat: order Mountain View's bulk actions like Gmail's and search the Move to menu
2026-10-12 01:54:15 +02:00
Linus Rath
0a82835626
feat: lay out Mountain View's account card like Gmail's
2026-10-12 01:53:19 +02:00
Linus Rath
5efe718cf0
feat: order Mountain View's message menu like Gmail's and add Find emails from
2026-10-12 01:45:35 +02:00
Linus Rath
986daef90b
feat: add Gmail's side panel with calendar, tasks and contacts to Mountain View
2026-10-12 01:40:30 +02:00
Linus Rath
cedac10c29
feat: use Gmail's advanced search form in Mountain View
2026-10-12 01:34:02 +02:00
Linus Rath
78e68e8886
feat: write Mountain View replies in place under the conversation
2026-10-12 01:29:55 +02:00
Linus Rath
c652fec371
feat: give Mountain View's compose window Gmail's title bar and bottom bar
2026-10-12 01:26:03 +02:00
Linus Rath
943a92bd42
feat: show the whole conversation around the open message in Mountain View
2026-10-12 01:16:15 +02:00
Linus Rath
1980de68c8
feat: give Mountain View's open message Gmail's toolbar, pager and header
2026-10-12 01:10:10 +02:00
Linus Rath
20b52a060f
feat: draw Mountain View's message rows like Gmail's
2026-10-12 01:01:09 +02:00
Linus Rath
cf558e7e9f
feat: lay out Mountain View's navigation like Gmail's, with a Labels section
2026-10-12 00:46:48 +02:00
Linus Rath
ae151cec25
feat: set Mountain View's content on a rounded card over a tinted canvas
2026-10-12 00:37:59 +02:00
Linus Rath
864d2a85e6
test: stub elementFromPoint for the mousedown in the mention tests
2026-10-11 21:27:06 +02:00
Linus Rath
517cd019a8
Merge branch 'main' of https://github.com/bulwarkmail/webmail
2026-10-11 21:16:27 +02:00
Linus Rath
866312129b
test: click into the body before typing in the mention tests
2026-10-11 21:15:14 +02:00
Linus Rath
11cf2415d6
Merge pull request #1210 from lucamzanon/fix/mv-collapsed-rail
...
fix(mountain-view): let the collapsed rail fill its 72px column
2026-10-11 21:09:30 +02:00
Linus Rath
1ed7ec0327
Merge pull request #1213 from shukiv/fix/draft-body-from-body-parts
...
fix: take a re-opened draft's body from its body parts only
2026-10-11 21:03:18 +02:00
Linus Rath
968c351d4d
Merge pull request #1212 from shukiv/fix/composer-attachment-list-scroll
...
fix: scroll the attachment list instead of burying the send button
2026-10-11 21:03:14 +02:00
Linus Rath
a61a7c503e
fix: show the sender's name in the contact popover when the saved contact has none
2026-10-11 21:01:42 +02:00