Linus Rath
81f8bf6d60
feat: save a document edited in its program back into Files, and ask Keep both or Replace when it changed there meanwhile
2026-11-04 13:56:15 +01:00
Linus Rath
22903cdfc0
feat: search the screen you're on and import calendars and contacts from the desktop app's menus
2026-11-04 10:51:19 +01:00
Linus Rath
fcc9fc0cc0
Merge branch 'feat/desktop-offline' into feat/do-ux-mail-fixes
...
# Conflicts:
# components/email/email-viewer.tsx
# components/mail/mail-app.tsx
# components/offline/offline-host.tsx
# components/ui/welcome-banner.tsx
# locales/ar/common.json
# locales/ca/common.json
# locales/cs/common.json
# locales/da/common.json
# locales/de/common.json
# locales/en/common.json
# locales/es/common.json
# locales/et/common.json
# locales/fa/common.json
# locales/fr/common.json
# locales/he/common.json
# locales/hu/common.json
# locales/it/common.json
# locales/ja/common.json
# locales/ko/common.json
# locales/lv/common.json
# locales/mn/common.json
# locales/nb/common.json
# locales/nl/common.json
# locales/pl/common.json
# locales/pt/common.json
# locales/ro/common.json
# locales/ru/common.json
# locales/sk/common.json
# locales/th/common.json
# locales/tr/common.json
# locales/uk/common.json
# locales/vi/common.json
# locales/zh-TW/common.json
# locales/zh/common.json
2026-11-04 09:11:09 +01:00
Linus Rath
3841bdd630
Merge branch 'feat/do-drop-overlay' into feat/desktop-offline
...
# Conflicts:
# desktop-policies/de-DE/Bulwark.adml
# desktop-policies/en-US/Bulwark.adml
2026-11-04 08:37:26 +01:00
Linus Rath
2f31b435a2
Merge branch 'feat/desktop-offline' into feat/do-menu-fixes
...
# Conflicts:
# components/desktop/desktop-host.tsx
2026-11-04 07:57:50 +01:00
Linus Rath
5c2d306964
feat: add New event, New task, New contact, Import mail and the composer's Send, Save draft and Attach files to the desktop menus
2026-11-04 06:59:09 +01:00
Linus Rath
141748e1d6
fix: show first-start notices one at a time above the message list, each with a close button
...
The dictionary test now reads the notice queue instead of the toasts: the
question is no longer a toast.
2026-11-04 06:29:23 +01:00
Linus Rath
0823a531fa
feat: search mail for selected text from the desktop app's right-click menu
2026-11-04 06:21:06 +01:00
Linus Rath
2f46eb6b46
Merge branch 'feat/do-menu-fixes' into feat/do-drop-overlay
2026-11-04 06:20:02 +01:00
Linus Rath
e211ae905e
feat: offer attach or upload when files are dragged onto any screen
...
Files dragged into the window from outside now bring up a full-window
overlay with large drop zones: attach to a new message and upload to
Files, with the open composer first, "Upload to <folder>" on the Files
screen, and add to calendar, add to contacts, open or import for .ics,
.vcf and .eml files. At most four zones, the one under the pointer
highlights, Esc or dragging out cancels, a drop beside the zones does
nothing. Drags that start in the app never show it. A file pasted
outside a text field gets the same choices as a keyboard dialog.
The desktop app used to turn any file dropped on the window into a new
draft (lib/desktop/window-files.ts). That handling moved to the
overlay, so the "files on the window" tests in os-window.test.tsx went
with it: the same cases are now in components/file-drop/__tests__.
2026-11-04 05:37:35 +01:00
Linus Rath
674845df4e
fix: keep the desktop menus and tray in the language the app shows
2026-11-04 05:20:02 +01:00
Linus Rath
97c0bd633a
Merge branch 'feat/desktop-offline' into feat/do-edit-attachments
...
# Conflicts:
# lib/desktop/languages.ts
# locales/ar/common.json
# locales/ca/common.json
# locales/cs/common.json
# locales/da/common.json
# locales/de/common.json
# locales/en/common.json
# locales/es/common.json
# locales/et/common.json
# locales/fa/common.json
# locales/fr/common.json
# locales/he/common.json
# locales/hu/common.json
# locales/it/common.json
# locales/ja/common.json
# locales/ko/common.json
# locales/lv/common.json
# locales/mn/common.json
# locales/nb/common.json
# locales/nl/common.json
# locales/pl/common.json
# locales/pt/common.json
# locales/ro/common.json
# locales/ru/common.json
# locales/sk/common.json
# locales/th/common.json
# locales/tr/common.json
# locales/uk/common.json
# locales/vi/common.json
# locales/zh-TW/common.json
# locales/zh/common.json
2026-11-04 02:40:47 +01:00
Linus Rath
d31d0af560
fix: say what an open program still holds, keep forwarded parts under their rules, and let main decide what a sent draft leaves
2026-11-04 02:36:48 +01:00
Linus Rath
71aaadef50
fix: run plugins' compose check in quick compose, keep a composer with one owner, and bring it back after a crash
...
The first version of quick compose skipped `onBeforeCompose`, a composer
moved back could end up open in both windows, a reply moved back under
Pro flagged the selected message, and a crashed pop-out came back blank.
- A new message in a pop-out runs `onBeforeCompose` with the same result
as the main window: a plugin that stops it closes the window.
- The way back has two steps, so a pop-out that gave up can't leave a
second owner. A handoff behind a plugin's gate makes it say busy.
- A Pro tab made from a composer moved back answers its own message.
- Each save writes `draft`, `account` and `owner` into the pop-out's
address, which a reload after a crash starts from. What was typed since
the last save, up to the 2 s autosave delay, is still lost.
- The recorder refuses keys that type a character on this keyboard, and
what the shell refuses from a page, and says why.
2026-11-04 01:31:43 +01:00
Linus Rath
e696fb1610
fix: ask before sending an older attachment also when the save was a moment ago
2026-11-04 00:17:15 +01:00
Linus Rath
69313623e0
fix: keep the edited file offers clear of the account menu
2026-11-04 00:02:34 +01:00
Linus Rath
c0cf12c431
fix: show the edited file offers over the sidebar
2026-11-03 23:58:25 +01:00
Linus Rath
05e2e79ccf
fix: keep the edited file offers clear of the toasts
2026-11-03 23:49:34 +01:00
Linus Rath
e74248b37b
feat: edit attachments in their own program from the desktop app and take the saved file back into mail
2026-11-03 23:37:40 +01:00
Linus Rath
3da18cc2c0
feat: set the quick compose keys in the desktop settings and move a composer back into the main window
2026-11-03 23:25:10 +01:00
Linus Rath
2b4a1171ab
fix: show the spelling and unsent-mail labels in the desktop app instead of their raw keys
2026-11-03 21:50:09 +01:00
Linus Rath
deb73cc6e2
Merge branch 'feat/do-native-ui' into feat/desktop-offline
2026-11-03 18:28:49 +01:00
Linus Rath
159bd8becc
Merge branch 'feat/do-os-integration' into feat/do-reminders
...
# Conflicts:
# components/desktop/desktop-os-host.tsx
# lib/desktop/os-commands.ts
# lib/desktop/types.ts
# locales/ar/common.json
# locales/ca/common.json
# locales/cs/common.json
# locales/da/common.json
# locales/de/common.json
# locales/en/common.json
# locales/es/common.json
# locales/et/common.json
# locales/fa/common.json
# locales/fr/common.json
# locales/he/common.json
# locales/hu/common.json
# locales/it/common.json
# locales/ja/common.json
# locales/ko/common.json
# locales/lv/common.json
# locales/mn/common.json
# locales/nb/common.json
# locales/nl/common.json
# locales/pl/common.json
# locales/pt/common.json
# locales/ro/common.json
# locales/ru/common.json
# locales/sk/common.json
# locales/th/common.json
# locales/tr/common.json
# locales/uk/common.json
# locales/vi/common.json
# locales/zh-TW/common.json
# locales/zh/common.json
2026-11-03 14:47:37 +01:00
Linus Rath
e20aded171
fix: keep restored desktop composers off sent mail and on their own From, check links from the native menu, and fetch no dictionary without asking
...
A restored composer opened whatever the id named. Sending keeps the id, so its autosave would have destroyed the Sent copy, Send mailed it twice and Discard deleted it. It now needs the login in its address and a real draft, keeps its From with several accounts, and stays on the list if the server doesn't answer. A message from a bulwark:// link no longer marks itself read or sends a receipt. Native menus speak all 30 languages. Spellcheck dictionaries come from Google only after a yes, never in no-third-party mode.
2026-11-03 12:53:40 +01:00
Linus Rath
a802411cdd
feat: fire calendar reminders from the local store, with native snooze and join buttons and one summary of what was missed
2026-11-03 12:31:58 +01:00
Linus Rath
41fcbba61c
fix: keep sender and subject off the OS until they're known to be allowed, leave nothing on it after sign-out, and take files only where they're meant
2026-11-03 12:24:14 +01:00
Linus Rath
d9c9fc03f7
feat: give the desktop app a native menu bar and native right-click menus built from the webmail's own
2026-11-03 10:44:03 +01:00
Linus Rath
947743cc9e
feat: connect the desktop app's tray, badge, notifications, files and settings to the webmail
2026-11-03 10:13:06 +01:00