Commit Graph
1575 Commits
Author SHA1 Message Date
Linus Rath 2f8b4863ff Merge pull request #1338 from HOLOEYE-JZ/feat/plugin-search-results 2026-10-26 19:32:56 +01:00
Linus Rath 7c00a02319 Merge pull request #1345 from HOLOEYE-JZ/feat/plugin-action-badge 2026-10-26 19:32:08 +01:00
Linus Rath edba184bc0 fix: keep an Outlook-style reply from loading the quoted message's remote images 2026-10-26 19:30:18 +01:00
Linus Rath 12ee24a81a Merge pull request #1355 from maxhaomh/fix/outlook-quote-lines 2026-10-26 19:28:56 +01:00
Linus Rath 4bfaf8abce Merge pull request #1363 from lucamzanon/feat/account-archive-restore-prompt 2026-10-26 19:26:13 +01:00
Linus Rath e99cce05fe Merge pull request #1370 from maxhaomh/feat/disable-quick-reply 2026-10-26 19:24:49 +01:00
Linus Rath 7677b87c5e Merge pull request #1373 from motofix/fix/1371-download-name-slash 2026-10-26 19:23:56 +01:00
Julien Béti 460343d86d fix: show inline images whose part name is a path #1371 2026-10-26 18:34:57 +01:00
Linus Rath e159ca1420 fix: name the rail's Mail entry Mail for screen readers instead of its unread count 2026-10-26 16:49:44 +01:00
Max Hao 7216089629 feat: add quick reply feature with toggle in settings and tests 2026-10-26 11:40:47 -04:00
Linus Rath 272fc5e1f4 fix: reuse a group account's year and month archive folders instead of creating them again or in the own account 2026-10-26 16:14:19 +01:00
Linus Rath 4a9284aa48 fix: mark the answered or forwarded message from a Pro compose tab also when the send is held for undo 2026-10-26 16:14:18 +01:00
Linus Rath 34ad859ce4 fix: refuse Undo and Send now for a delayed send of a signed-out account instead of acting through the active one 2026-10-26 16:11:53 +01:00
Linus Rath ceaa9cea39 fix: highlight only the open message in lists that mix accounts, not another account's message with the same id 2026-10-26 16:11:52 +01:00
Linus Rath 54b197080c fix: keep a discarded draft of a signed-out account instead of deleting another account's message with its id 2026-10-26 16:11:52 +01:00
Linus Rath 0b917d6262 fix: mark the replied, forwarded or receipted message as answered in its own account, not another account's message with the same id 2026-10-26 16:11:52 +01:00
Linus Rath acac3128bc fix: archive and delete a message from its own account's folders in tag and unified views 2026-10-26 16:11:51 +01:00
Linus Rath 87701c8c20 fix: keep the calendars shown or hidden in the Pro interface as the user set them 2026-10-26 15:15:58 +01:00
Linus Rath 7da326b86e fix: keep the server's path in the fallback CalDAV address 2026-10-26 15:15:58 +01:00
Linus Rath f0392a6705 fix: check a meeting reply's sender against the attendee who answers, not the organizer 2026-10-26 15:15:58 +01:00
Linus Rath ae897b42a4 fix: make the impersonation handoff really clear the previous account list and ignore ?impersonated=1 links from elsewhere 2026-10-26 14:58:31 +01:00
Linus Rath e314e56661 fix: keep the own and a group's scheduled mail apart when their ids are the same 2026-10-26 12:26:58 +01:00
Linus Rath 8c9cf8e63e test: check draft account and threading headers in createDraft's options after the merge 2026-10-26 12:26:57 +01:00
Linus Rath dcde570ebe fix: say the directory can't be browsed instead of that a refresh failed when the server lists only the people you know 2026-10-26 12:25:32 +01:00
Linus Rath b038c82dcc fix: only offer to apply a counter proposal sent by one of the meeting's participants 2026-10-26 12:25:31 +01:00
lucamzanon 2f8c6e13bf feat: offer to restore the saved account list on a new device
Part 3 of 3 of the account archive (#1198). Signing in on a browser that
knows no other account, with a list saved for that account, opens a dialog
asking for the backup password and restores the list as Settings does.
Not now hides the offer for that account in this browser; the restore
stays in Settings.
2026-10-26 12:23:18 +01:00
Linus Rath b5c6b67ba4 fix: keep a link in a printed message from redirecting the webmail tab 2026-10-26 11:22:10 +01:00
Linus Rath 3f2f27321c fix: keep an unquoted cid: image from swallowing the rest of the message 2026-10-26 11:22:10 +01:00
Linus Rath 6014142358 fix: show conversation and attached-message attachment names without directional override characters 2026-10-26 11:22:10 +01:00
Linus Rath c133659c83 fix: run links in conversation messages through the reader's link gate 2026-10-26 11:22:10 +01:00
Linus Rath cf2c27157d Merge branch 'main' into feat/stalwart-1.0
# Conflicts:
#	components/contacts/contacts-app.tsx
#	components/email/__tests__/composer-discard.test.tsx
#	components/email/calendar-invitation-banner.tsx
#	components/email/email-composer.tsx
#	components/mail/mail-app.tsx
#	components/pro/pro-compose-tab-body.tsx
#	components/pro/pro-email-tab-body.tsx
#	components/ui/__tests__/avatar.test.tsx
#	components/ui/avatar.tsx
#	hooks/use-mailbox-drop.ts
#	lib/__tests__/calendar-alerts.test.ts
#	lib/__tests__/jmap-calendar-tasks.test.ts
#	lib/__tests__/jmap-send-threading.test.ts
#	lib/demo/demo-client.ts
#	lib/demo/fixtures/calendars.ts
#	lib/jmap/client-interface.ts
#	lib/jmap/client.ts
#	lib/web-push.ts
#	stores/__tests__/contact-store.test.ts
#	stores/__tests__/email-store-thread-key.test.ts
#	stores/calendar-store.ts
#	stores/contact-store.ts
#	stores/email-store.ts
2026-10-26 10:14:12 +01:00
Max Hao 5430b9e446 fix: honor borderless Outlook-style HTML quotes 2026-10-25 22:22:41 -04:00
Jacob ZeitzandClaude Opus 5.5 fc438c275f feat: open the message a plugin's search result names
An entry of onProvideSearchResults may carry email: { id, accountId? }.
A click on it opens the message in the reader through the login that
reaches the account, as a list row does, and marks the entry while it
is open; any other click stays onAction.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-25 15:22:38 +01:00
Jacob ZeitzandClaude Opus 5.5 d02988f431 feat: show the results plugins provide through onProvideSearchResults
The hook was called on every search, but nothing showed its entries,
the list waited for it, and an entry's onClick could not cross from the
plugin's sandbox. Its entries are now drawn as a block above the
search's message list, a group per plugin and source.

Each plugin is asked on its own (HookBus.collect) beside the search, so
the list no longer waits, and the answer to a search that was replaced
is dropped. The answer is checked: at most 20 entries, a key and a
title, plain text cut to its limits. A click goes to the plugin that
gave the entry as onAction with surface "search-results", the entry's
key and the query; ExternalSearchResult loses onClick.

Closes #1336

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-25 15:22:33 +01:00
Jacob Zeitz 4a130bc1f9 feat: let plugins show a count on their buttons
An action declared with ui.setActions may carry a badge, a whole number
from 0. On buttons it is drawn as the search's filter button draws its
count: the button tinted, the number in a bubble at its corner, "99+"
past two digits. In menus it follows the label, as the mobile header's
notification count does. 0 shows none.
2026-10-25 14:36:01 +01:00
Linus Rath 3bfba19ca5 fix: give Mountain View's list chips Gmail's height and spacing 2026-10-25 13:14:24 +01:00
Linus Rath f7a4087c91 feat: split the Mountain View inbox into Unread and Everything else, as Gmail's unread first 2026-10-25 13:13:46 +01:00
Linus Rath e31f55064e fix: use the current calendar and contacts icons in the Mountain View side panel 2026-10-25 12:56:48 +01:00
Linus Rath cb663d2222 fix: keep settings switches full width next to long labels 2026-10-25 12:49:55 +01:00
Linus Rath 0b1463b7d5 feat: show attachment and code chips as Gmail pills in Mountain View 2026-10-25 12:48:49 +01:00
Linus Rath 39c8b14574 fix: open the admin panel in the desktop layout without a phone-layout flash 2026-10-25 12:42:02 +01:00
Linus Rath 07627b3a60 fix: give every app's sidebar header and toolbar the same height as mail 2026-10-25 12:30:23 +01:00
Linus Rath 9c360694bf fix: send paragraphs with the spacing the composer shows #1340 2026-10-25 12:27:13 +01:00
Linus Rath 6be0f70452 perf: skip plugin round trips when a slot re-renders with the same props 2026-10-25 02:40:43 +02:00
Linus Rath 782d4f8bf5 perf: stop loading the app's stores in every plugin frame 2026-10-25 02:09:37 +02:00
Linus Rath a49ab079ec fix: sanitize quoted and signature HTML in re-opened drafts (GHSA-g35q-3gpc-x2rr) 2026-10-24 22:13:19 +02:00
Linus Rath 6d459674f8 Merge pull request #1109 from hildebrandttk/fix/group-identity-sent-copy
fix: save a group identity's drafts in the group account's Drafts (#1…
2026-10-24 17:55:10 +02:00
Linus Rath 1bd1a6b123 Merge pull request #1334 from HOLOEYE-JZ/feat/sidebar-tags-first
feat: admin policy gate to list the Tags above the shared mailboxes
2026-10-24 17:55:01 +02:00
Linus Rath 3b8dd4cd82 Merge pull request #1317 from LeonardNJU/feat/plugin-sidebar-heading-actions
feat(plugins): allow inline actions in collapsible sidebar headers
2026-10-24 17:54:53 +02:00
Linus Rath 10caa9e2f3 Merge pull request #1316 from ghozty/feat/app-name-strings
feat: name the app with the configured APP_NAME in user-facing strings
2026-10-24 17:54:49 +02:00