Linus Rath
f39cff2377
fix: call no relay from the worker in no-third-party mode, and handle several accounts in one push side by side
2026-11-04 03:13:59 +01:00
Linus Rath
d8e2a4f42c
fix: keep a waiting re-sync from undoing what another tab turned off, and note the relay on refresh
2026-11-04 03:13:59 +01:00
Linus Rath
9432345440
fix: keep a nothing-new notification from closing or replacing a real one
2026-11-04 03:13:59 +01:00
Linus Rath
8cb218ce3c
fix: apply email notifications off and do not disturb per login, not to every login's mail
2026-11-04 03:13:59 +01:00
Linus Rath
248f9c261b
fix: take down push for logins with no connection when signing out of everything
2026-11-04 03:13:59 +01:00
Linus Rath
9bc31b54ab
fix: keep notifications generic after the browser closed when the organisation has idle limits
2026-11-04 03:13:59 +01:00
Linus Rath
6dbda4424e
fix: stop a stuck push setup from holding up every tab and login
2026-11-04 03:13:58 +01:00
Linus Rath
bc8653de8b
fix: only replace a browser subscription on the relay's own answer, and move the other logins along
2026-11-04 03:13:58 +01:00
Linus Rath
226b9383ce
fix: show a generic notification instead of guessing which login a push is for
2026-11-04 03:13:58 +01:00
Linus Rath
f0617a61b1
fix: only treat a server subscription as this browser's when its device id matches
2026-11-04 03:13:58 +01:00
Linus Rath
6ffa0a3715
fix: show the real sender and subject for a push after the browser was closed
2026-11-04 03:13:57 +01:00
Linus Rath
5c62c57657
fix: replace a browser subscription the push service gave up on
2026-11-04 03:13:57 +01:00
Linus Rath
a6ef818149
fix: end a login's push registration when it signs out, is removed or wiped
2026-11-04 03:13:57 +01:00
Linus Rath
8b4fb72357
fix: say in plain words why push could not be turned on or off
2026-11-04 03:13:57 +01:00
Linus Rath
d520af51b2
fix: restore push when the browser replaces its subscription with no tab open
2026-11-04 03:13:56 +01:00
Linus Rath
8a69c35206
fix: open a notification in the app window, not a pop-out or a frame
2026-11-04 03:13:56 +01:00
Linus Rath
33249ca57a
fix: show a notification even if building it fails
2026-11-04 03:13:56 +01:00
Linus Rath
2c462c304e
fix: show the right preview when an account id is in more than one login
2026-11-04 03:13:56 +01:00
Linus Rath
fc6a209727
fix: keep push notifications off screen with email notifications off or do not disturb on
2026-11-04 03:13:56 +01:00
Linus Rath
7fb0242a7b
fix: open the new message from its notification however much older mail is unread
2026-11-04 03:13:56 +01:00
Linus Rath
376465ed80
fix: notify for every account a state-change push names
2026-11-04 03:13:56 +01:00
Linus Rath
6ca6448b5e
fix: remove the record from the old relay when push moves to another one
2026-11-04 03:13:56 +01:00
Linus Rath
2551823006
fix: let tabs take turns setting up push so two can't race into two subscriptions
2026-11-04 03:13:55 +01:00
Linus Rath
4586f16c2e
fix: remove the unverified subscription when push verification fails, and poll through a network blip
2026-11-04 03:13:55 +01:00
Linus Rath
3a805d1631
fix: restart push verification when the mail server skipped it after a quick off and on
2026-11-04 03:13:55 +01:00
Linus Rath
7f3d9c5073
fix: let npm run build pass its guard, with the build run in CI
2026-11-04 02:45:46 +01:00
Linus Rath
f570277a61
chore: merge the desktop offline branch into quick compose
2026-11-04 01:45:09 +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
889f6ffbd1
fix: fail requests under way when the desktop app closes its connections, and forget client certificates per account
2026-11-04 00:56:09 +01:00
Linus Rath
d0a636416d
docs: say where quick compose opens its window in the pop-out notes
2026-11-03 23:35:23 +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
8549e3c4c6
feat: translate the desktop app's client certificate picker and forget chosen certificates at sign-out and account switch
2026-11-03 23:21:56 +01:00
Linus Rath
54bda3ef3d
Merge branch 'feat/do-packaging' into feat/desktop-offline
...
# Conflicts:
# components/desktop/desktop-host.tsx
# lib/desktop/languages.ts
2026-11-03 22:02:10 +01:00
Linus Rath
43ba229c7d
Merge branch 'feat/do-perf-guard-2' into feat/desktop-offline
2026-11-03 21:50:37 +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
7509bd9f53
Merge branch 'main' into feat/desktop-offline
2026-11-03 21:37:32 +01:00
Linus Rath
d651ae857c
Merge remote-tracking branch 'origin/main' into feat/do-perf-guard
2026-11-03 21:34:59 +01:00
Linus Rath
a89cae5f28
fix: show the page skeleton from the first frame again, with or without an app lock
2026-11-03 21:33:51 +01:00
Linus Rath
b4bcce2b01
Merge branch 'main' into feat/desktop-offline
2026-11-03 19:53:36 +01:00
Linus Rath
423fe28b0b
Merge branch 'main' into feat/do-ci-fix
2026-11-03 19:50:46 +01:00
Linus Rath
1efe9bc8b4
test: tell reminders of two accounts apart by uid, since one meeting in both rings once
2026-11-03 19:49:57 +01:00
Linus Rath
d890addbf4
test: register devices a second apart in the cap test, since rows of one millisecond have no oldest
2026-11-03 19:49:56 +01:00
Linus Rath
ac2f7cba2b
test: allow keystore as the one bare plugin permission, since it has no actions and the S/MIME manifest uses the name
2026-11-03 19:49:56 +01:00
Linus Rath
fe3c213cb9
test: spell out the device policy defaults, since the offline caps are numbers where 0 means no cap
2026-11-03 19:49:55 +01:00
Linus Rath
984e6fa8d9
fix: label device and pop-out requests in metrics and error reports
2026-11-03 19:49:55 +01:00
Linus Rath
3f59af9c31
fix: delete offline mail right away when the local store doesn't answer
2026-11-03 19:49:55 +01:00
Linus Rath
26c009c302
feat: send the updater's translated text with the desktop menu labels
2026-11-03 19:45:23 +01:00
Linus Rath
529d334496
Merge branch 'fix/ui-bug-hunt'
2026-11-03 19:44:46 +01:00
Linus Rath
b8560579a4
Merge branch 'feat/do-import' into feat/desktop-offline
...
# Conflicts:
# lib/desktop/types.ts
2026-11-03 19:44:43 +01:00
Linus Rath
a96c66fa5e
Merge branch 'main' into feat/do-packaging
...
# Conflicts:
# components/settings/general-settings.tsx
# lib/desktop/types.ts
2026-11-03 19:37:41 +01:00