Linus Rath
e1b43c894f
fix: stop warning about failed checks on an invitation that passes dmarc #1403
2026-10-29 14:20:44 +01:00
Linus Rath
f8f2e93cd9
fix: count a dkim pass the receiver reports by header.i only #1420
2026-10-29 14:18:48 +01:00
Linus Rath
47ee263d76
Merge pull request #1419 from HOLOEYE-JZ/feat/plugin-search-results-pending
...
# Conflicts:
# components/email/plugin-search-results.tsx
2026-10-29 14:11:34 +01:00
Linus Rath
8e533f090c
Merge pull request #1418 from HOLOEYE-JZ/feat/plugin-search-result-marks
2026-10-29 14:11:11 +01:00
Linus Rath
2c1645ac2d
Merge pull request #1427 from creyD/main
2026-10-29 14:10:38 +01:00
Linus Rath
764ee97692
test: bring the main test suite back to green after the vitest 5 upgrade and header rework
2026-10-29 14:07:40 +01:00
Linus Rath
5aa44a5bfe
chore: update vitest to 5, jsdom to 30 and typescript to 6
2026-10-29 14:00:54 +01:00
Conrad
ed84cd29c9
fix: read address headers in the Addresses form when a rule runs on existing messages #1424
2026-10-29 12:26:04 +01:00
Jacob Zeitz
03876158fe
feat(plugins): hold the search results block's place while a plugin still searches
...
A plugin's results to a search came all at once after its handler answered,
with nothing before: the block then appeared above the message list and
pushed it down, under a pointer about to click a row. onProvideSearchResults
handlers that search elsewhere (a CRM's search by meaning) take seconds.
Each plugin's answer now shows as it comes, and the store keeps the plugins
still asked. One that has not answered after 300 ms gets the block at a fixed
height with placeholder rows under "Searching for more results…"; its
entries then fill that height, so the list moves once, with its own results.
A plugin that answers at once (one not searching for this query) shows
nothing.
2026-10-29 10:25:59 +01:00
Jacob Zeitz and Claude Opus 5.5
fa4db60032
feat(plugins): let a plugin search result's snippet mark what matched
...
An entry from onProvideSearchResults may wrap what matched in <mark>, as
SearchSnippet/get does, and the block above the message list highlights
it with the list's own SearchSnippetText. The host keeps the marks,
escapes everything else and cuts the snippet by its text, closing a mark
it cuts, so the snippet is still never rendered as HTML.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-29 10:03:27 +01:00
Linus Rath
63375f6870
Merge pull request #1410 from motofix/fix/1407-vcard-4-export
...
fix: export contacts as valid vCard 4.0 #1407
2026-10-29 00:13:30 +01:00
Linus Rath
e3cd9546fc
fix: stop Safari's login dialog in Lite on Stalwart when the access token expired #1396
2026-10-29 00:05:50 +01:00
Linus Rath
f12a13e1fd
feat: create documents in the formats the document editor can edit from New file #1393
2026-10-29 00:01:13 +01:00
Linus Rath
8b35962efb
fix: show section labels in sentence case instead of all caps
2026-10-28 22:26:39 +01:00
Linus Rath
0d3916cfcc
feat: add a light event colors setting that shows calendar events tinted with a color bar, as in Outlook
2026-10-28 21:50:47 +01:00
Linus Rath
d5bf6b98c4
feat: print the calendar's month, week, day, agenda, tasks and single events
2026-10-28 21:08:20 +01:00
Linus Rath
2b24b4503f
fix: load shared accounts' folders in batched, parallel requests #1409
2026-10-28 19:15:51 +01:00
Julien Béti
a3fdd72763
fix: export contacts as valid vCard 4.0 #1407
...
The export declared VERSION:3.0 but wrote vCard 4.0 syntax, and wrote the JSContact phone feature \"mobile\" as TYPE=MOBILE, which is no vCard type, so importers dropped such numbers.
- Declare VERSION:4.0 and write 4.0 throughout: basic-format dates and timestamps, data: URIs for inline media, VALUE=text for a UID or RELATED that is no URI, geo: URIs, lines folded at 75 octets, CRLF after every line, and the webmail's own PRODID.
- Map "mobile" to CELL and back; MAIN-NUMBER and x- types are kept.
- Write N before FN: some importers ignore the name otherwise.
- The contact form stores mobile phones as "mobile" (RFC 9553) and still reads the "cell" it used to write.
2026-10-28 17:27:07 +01:00
Linus Rath
8108249a35
Merge pull request #1406 from HOLOEYE-JZ/feat/plugin-ui-navigate
...
# Conflicts:
# app/(main)/[locale]/layout.tsx
2026-10-28 17:02:42 +01:00
Linus Rath
935f48c450
Merge pull request #1399 from lucamzanon/perf/tag-counts-keyword-get
2026-10-28 17:02:23 +01:00
Linus Rath
fba04d2251
Merge pull request #1401 from lucamzanon/perf/keepalive-while-push-healthy
2026-10-28 17:02:23 +01:00
Linus Rath
3f71bbedee
test: allow JMAP Metadata only in the Bulwark metadata adapter, now that Stalwart v1.0.0 implements it
2026-10-28 15:14:49 +01:00
Linus Rath
96797597c5
Merge branch 'main' into feat/org-features
2026-10-28 15:14:34 +01:00
Jacob Zeitz
ba45d0f8b9
feat(plugins): api.ui.openPage moves the tab to one of the plugin's own pages
2026-10-28 13:50:12 +01:00
Linus Rath
fdd00ac639
Merge branch 'ux/final-ccs'
2026-10-28 13:24:08 +01:00
Linus Rath
0c5ed0c606
fix: show the lite 404 page in the language of its address, right to left for arabic, hebrew and persian
2026-10-28 13:09:30 +01:00
Linus Rath
a2877173a1
fix: drop the admin save bar when a field is put back to its saved value, empty included
2026-10-28 12:52:23 +01:00
Linus Rath
382b26f128
fix: ask before the rail or the mountain view top bar leaves an event or task with unsaved changes
2026-10-28 12:50:59 +01:00
Linus Rath
2bb63f648b
fix: keep the phone conversation's reply buttons readable and count its messages with each language's plural forms
2026-10-28 12:46:18 +01:00
Linus Rath
8fb4e51dc5
fix: end mail menu items in an ellipsis only where they open a dialog, drop the key hint and say Report spam on the reader button in every language
2026-10-28 12:42:22 +01:00
Linus Rath
106d16e9f5
fix: keep the mail search placeholder short enough to show in full in every language
2026-10-28 12:37:26 +01:00
Linus Rath
8597858865
fix: bring mail back to its list after the tour on phones instead of an empty reading pane
2026-10-28 12:34:27 +01:00
Linus Rath
e654eadd37
Merge branch 'main' into ux/mail3
2026-10-28 11:10:56 +01:00
Linus Rath
0eb68f1743
Merge branch 'ux/settings-admin2'
2026-10-28 11:06:39 +01:00
Linus Rath
9014dda3cb
Merge branch 'ux/contacts-files2'
2026-10-28 11:04:04 +01:00
Linus Rath
94029e5aa2
fix: ask before the nav rail or the phone tab bar leaves a contact or group form with changes
2026-10-28 10:43:55 +01:00
Linus Rath
f8a2d7821a
fix: say when a rescheduled message goes out now after Reschedule
2026-10-28 10:35:53 +01:00
Linus Rath
feac899133
fix: say "new calendar", "new app password", "new API key", "add public key", "sub-addressing" and "back to mail" in settings and the admin
2026-10-28 10:33:03 +01:00
Linus Rath
53c49143ec
fix: drop the scheduled badge from a demo message once its send is cancelled
2026-10-28 10:29:26 +01:00
Linus Rath
039ed0598b
fix: make Forward as attachment, Export as .eml and View source work in the demo
2026-10-28 10:23:20 +01:00
Linus Rath
715c3f03a3
fix: let Enter on the skip link move focus to the message list instead of opening a message
2026-10-28 10:22:00 +01:00
Linus Rath
a9468929fd
fix: say that address books and contact categories can be deleted in settings, not only renamed
2026-10-28 10:21:35 +01:00
Linus Rath
945fd219a7
fix: point the mail client hint to the app passwords section below it
2026-10-28 10:20:41 +01:00
Linus Rath
55fb5acef5
fix: keep a file's Modified time on move, Undo and restore in the demo
2026-10-28 10:19:46 +01:00
Linus Rath
9c2952c437
fix: take the tour to the screen of each step on a phone and count only the steps it shows
2026-10-28 10:19:13 +01:00
Linus Rath
62ab48aee4
fix: ask "discard changes?" with keep editing and discard in settings editors and the admin pages, as in calendar and contacts
2026-10-28 10:19:10 +01:00
Linus Rath
cc46573524
fix: say "filters saved", "identity created" and "templates exported" without "successfully"
2026-10-28 10:13:14 +01:00
Linus Rath
ce092ac1ab
fix: stop adding blank lines to the external rules block on every filter save
2026-10-28 09:55:39 +01:00
Linus Rath
1322f6c3f0
fix: switch between demo accounts without the app crashing
2026-10-28 09:48:49 +01:00
Linus Rath
5d90a850bd
Merge branch 'feat/org-recovery' into feat/org-features
...
# Conflicts:
# components/email/email-list.tsx
2026-10-28 09:17:56 +01:00