Commit Graph
4473 Commits
Author SHA1 Message Date
Linus Rath f44bef7071 fix: stop the high-risk badge running under the switch in the plugin list on small phones 2026-11-03 05:19:51 +01:00
Linus Rath 1c4781e620 fix: give the update and manage buttons their own line in the marketplace installed list on phones 2026-11-03 05:19:50 +01:00
Linus Rath 6f6370c7f6 fix: show the folder name in the Files header on a phone and keep Delete in sight 2026-11-03 05:19:31 +01:00
Linus Rath 5ac2d15afb fix: keep the new event preview in its own week on a full month day 2026-11-03 05:19:30 +01:00
Linus Rath 38b950b240 fix: stop a sliver of next Monday showing at the edge of the week view 2026-11-03 05:19:29 +01:00
Linus Rath 6c8648109f fix: stop cutting the participant count in half on short calendar events 2026-11-03 05:19:28 +01:00
Linus Rath ff7713878b fix: give agenda event titles room on a phone by putting the time on its own line 2026-11-03 05:19:27 +01:00
Linus Rath 5961fe9e90 fix: keep the reading pane readable when a wide list meets a smaller window 2026-11-03 05:19:19 +01:00
Linus Rath 7394006ce1 fix: keep the marketplace search readable when the toolbar runs out of room 2026-11-03 05:16:37 +01:00
Linus Rath a1662dfaf3 fix: keep the login page's theme button clear of the card on small and landscape phones 2026-11-03 05:15:53 +01:00
Linus Rath 5ce2a591ad fix: show dark logos on a dark surface in branding and bring a preview back after a URL that failed 2026-11-03 05:11:29 +01:00
Linus Rath bba5ec9901 fix: show the full name in the search suggestions of a narrow list 2026-11-03 05:10:22 +01:00
Linus Rath 4bda73d9c6 fix: keep Settings on the phone tab bar when plugin pages fill it 2026-11-03 05:09:20 +01:00
Linus Rath 308178beda fix: open each settings page at its top and keep the place in the phone's page list 2026-11-03 05:06:26 +01:00
Linus Rath d9b9c97b58 fix: show marketplace screenshots larger than the thumbnail on phones and whole on short screens 2026-11-03 05:05:41 +01:00
Linus Rath e3bd9aa6c5 fix: keep marketplace dialogs on screen on phones instead of pushed off the edge 2026-11-03 05:05:38 +01:00
Linus Rath d9316101e8 fix: stop a theme card cutting its name next to the default badge 2026-11-03 05:02:43 +01:00
Linus Rath 494f2d5fff fix: stop the filter page footer and rule summaries overflowing on a phone 2026-11-03 05:02:39 +01:00
Linus Rath 158fe588b1 fix: show the label name above its controls on a phone 2026-11-03 05:02:37 +01:00
Linus Rath f5ed731b51 fix: keep settings selects and option buttons inside the page on small phones 2026-11-03 05:02:35 +01:00
Linus Rath 15725561cc fix: move plugin toolbar buttons into the more menu when the reader toolbar is out of room 2026-11-03 05:02:05 +01:00
Linus Rath 0fd77edeca fix: keep the composer's Close, panel button and Send reachable while a plugin panel lies over it 2026-11-03 05:01:08 +01:00
Linus Rath 97e6256c0e fix: show the inbox in the demo when a category tab filters on a header 2026-11-03 04:51:20 +01:00
Linus Rath 03e7cd86f1 fix: print only the open message on Ctrl+P, without plugin panels or the app around it 2026-11-03 03:30:33 +01:00
Linus Rath d82f677b9b fix: stop the admin overview offering an older version as an update 2026-11-03 03:27:33 +01:00
Linus Rath a2adddb4b7 ci: retry a failed source map upload before failing the build 2026-11-03 03:06:13 +01:00
Linus Rath af32c846a2 fix: let plugins read the signature auto-insert toggles they may change 1.20.0 2026-11-03 02:46:51 +01:00
Linus Rath 600bf4fcf3 fix: keep a typed extra label header when the classification page first renders 2026-11-03 02:36:00 +01:00
Linus Rath 34e016f1c0 test: stop the server-state guard counting empty as-const tuples as state 2026-11-03 02:35:42 +01:00
Linus Rath bf19f21eaf test: give the composing settings test the useLocale the proofreading section needs 2026-11-03 02:35:24 +01:00
Linus Rath 5c0ffd7aff fix: let plugins switch the signature auto-insert toggles and refuse the proofreading settings 2026-11-03 02:35:01 +01:00
Linus Rath fcf94908b4 chore: release 1.20.0 2026-11-03 02:10:36 +01:00
Linus Rath 262a2e5999 Merge the AI assistant everywhere (plugin 2.2 host side) 2026-11-03 01:57:36 +01:00
Linus Rath e2bc222f49 fix: load the assistant's calendar and settings calls on first use so plugin views don't load the calendar store 2026-11-03 01:54:32 +01:00
Linus Rath 5b4e740ba3 Merge branch 'main' into feat/assistant-everywhere 2026-11-03 01:50:22 +01:00
Linus Rath ddbff7aeb7 Merge the assistant's Files (package D)
# Conflicts:
#	components/email/__tests__/composer-plugin-edit.test.tsx
#	lib/__tests__/plugin-projection.test.ts
2026-11-03 01:48:30 +01:00
Linus Rath 06764d0e0a test: give the composer plugin tests' settings mock the calendar sync bridge 2026-11-03 01:38:42 +01:00
Linus Rath 553f7ee883 fix: start a plugin's api calls at once again, not a tick later 2026-11-03 01:38:42 +01:00
Linus Rath cad10893e3 test: wait for the send confirmation to take focus before pressing Escape 2026-11-03 01:36:12 +01:00
Linus Rath e9e07ddb64 Merge main into feat/assistant-everywhere 2026-11-03 01:35:57 +01:00
Linus Rath cf512f0a4e fix: check attachments, shared folders and limits in the assistant's Files calls
Fixes from the review of api.files:
- `files.attach` to a new draft runs `onBeforeAttachmentUpload` for each
  file and the server's total size limit before `compose.open`, which
  runs neither; refused files come back in `refused`
- a write is refused when a folder above the target is missing from the
  listing, instead of counting it as not shared
- `onFileMove` reports the item as it was, from where it was, like the
  Files app's own move
- writes are counted against the 20-a-minute limit before the drive is
  listed, so refused writes count and cost no listing
- reads stop the download past 20 MB (`fetchBlobArrayBuffer` with a
  limit) and answer `too_big` when the listed size was wrong
- when the server refuses the new content of a replaced file, the old
  version's copy is taken out of the trash again

The two getText assertions on `fetchBlobArrayBuffer` now expect the
account (undefined for the own drive) and the byte limit, since the
call passes both.
2026-11-03 01:31:05 +01:00
Linus Rath 64aad7943f test: give the composer test's settings mock the calendar sync bridge the calendar store registers 2026-11-03 01:31:05 +01:00
Linus Rath d7cb895ebf Merge branch 'feat/assistant-everywhere' into feat/assistant-d
# Conflicts:
#	lib/__tests__/plugin-permission-coverage.test.ts
2026-11-03 01:19:42 +01:00
Linus Rath 55d9c81210 Merge more actions for the assistant (package C) 2026-11-03 01:13:47 +01:00
Linus Rath 6c3e68ce4e Merge branch 'feat/assistant-everywhere' into feat/assistant-d 2026-11-03 01:01:29 +01:00
Linus Rath 270615c246 Merge more context for the assistant (package B) 2026-11-03 00:58:18 +01:00
Linus Rath 989cfc64a4 fix: offer a plugin the invitation and settings calls only once it was granted their permission 2026-11-03 00:55:50 +01:00
Linus Rath 8034b005b8 fix: keep archived messages in the Archive and in search results after a plugin's batch, and update folder counts 2026-11-03 00:53:35 +01:00
Linus Rath 37aaf05d6d fix: spend a plugin's undo token only once its undo went through, so a failed undo can be tried again 2026-11-03 00:51:30 +01:00
Linus Rath 169100eb12 fix: take the setting names app.getSettings gives, and check hidden, gated and restricted settings on undo too 2026-11-03 00:47:35 +01:00