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
80084457be
fix: end a removed login's push before its client disconnects
2026-11-04 03:13:58 +01:00
Linus Rath
09d6bff12a
fix: say push isn't available in the demo instead of offering a switch that fails
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
b0a36b7d1a
Merge commit '7f3d9c507' into feat/desktop-offline
2026-11-04 03:09:44 +01:00
Linus Rath
c4f30f7128
Merge remote-tracking branch 'origin/main' into feat/desktop-offline
2026-11-04 03:09:43 +01:00
Linus Rath
81d6948240
Merge branch 'main' of https://github.com/bulwarkmail/webmail
2026-11-04 03:08:16 +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
dc8482ace0
Merge branch 'feat/do-quick-compose' into feat/desktop-offline
2026-11-04 02:06:51 +01:00
Linus Rath
f570277a61
chore: merge the desktop offline branch into quick compose
2026-11-04 01:45:09 +01:00
Linus Rath
724aed257f
Merge branch 'feat/do-sso-certs' into feat/desktop-offline
2026-11-04 01:34:33 +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
514a9ba1d9
fix: keep the quote when typing in a reply as its inline images load
2026-11-03 22:08:18 +01:00
Linus Rath
7040a6a049
fix: reply and forward from the account holding the message in Pro tabs #1511
2026-11-03 22:06:21 +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
b8cb12174c
fix: bring office editing back after sign-in when the first status check was refused #1518
2026-11-03 21:45:13 +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
717747b577
test: restore the session cookies in the forgotten PIN offline case, as Chromium's emulated outage lets a keepalive delete through
2026-11-03 21:33:52 +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
fafdb0cdc0
fix: stop every search re-rendering the mail list when nothing is ticked
2026-11-03 21:06:48 +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
776328b58d
chore: keep the vendored SQLite build out of lint
2026-11-03 19:49:57 +01:00
Linus Rath
7bd9768e4c
test: mock the desktop commands in the launch handler test, which would load every store
2026-11-03 19:49:57 +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