Linus Rath
9ce7ac8172
feat: show unread per account in the switcher and count every account on the app badge and tray
...
The default layout's switcher listed accounts without their unread, so an
existing test asserted that (account-switcher-mountain-view, 'unread-free');
it now expects each account's count. The idle-outside-Pro hook test now
uses one account, since a second connected account loads in every layout.
2026-11-04 06:06:37 +01:00
Linus Rath
0e400dbcf4
Merge branch 'feat/do-proxy-fixes' into feat/desktop-offline
2026-11-04 04:20:49 +01:00
Linus Rath
c49c68ffbd
Merge branch 'feat/desktop-offline' into feat/do-proxy-fixes
2026-11-04 04:12:23 +01:00
Linus Rath
e101b0db27
Merge branch 'feat/do-keystore-fixes' into feat/desktop-offline
2026-11-04 03:59:11 +01:00
Linus Rath
8cd9d72558
Merge branch 'feat/desktop-offline' into feat/do-proxy-fixes
2026-11-04 03:55:52 +01:00
Linus Rath
bce0c0b744
Merge branch 'feat/desktop-offline' into feat/do-keystore-fixes
2026-11-04 03:52:09 +01:00
Linus Rath
7443654459
Merge branch 'feat/do-package-fixes' into feat/desktop-offline
2026-11-04 03:43:04 +01:00
Linus Rath
92e6ee1bfa
Merge branch 'feat/do-trust-fixes' into feat/desktop-offline
2026-11-04 03:43:04 +01:00
Linus Rath
be8aba2ae7
Merge remote-tracking branch 'origin/main' into feat/desktop-offline
...
# Conflicts:
# stores/auth-store.ts
2026-11-04 03:42:18 +01:00
Linus Rath
d3308e7729
Merge branch 'feat/desktop-offline' into feat/do-keystore-fixes
...
# Conflicts:
# lib/desktop/__tests__/policy-schema.test.ts
2026-11-04 03:31:22 +01:00
Linus Rath
2f846bb2da
fix: list the browser sign-in budget as shared server state
2026-11-04 03:30:48 +01:00
Linus Rath
35a4b034b1
fix: show optional permissions in the marketplace, and ask before an update adds a permission
2026-11-04 03:23:46 +01:00
Linus Rath
9b61b79d5c
fix: sign only CMS signed attributes through api.keystore, and ask a user about a managed plugin's keystore
...
The shell now takes a message's signed attributes where it took a digest,
so a page can't get a login or TLS digest signed. A quiet option lets a
plugin answer from what's allowed, for anything the user didn't ask for.
An admin's install no longer covers the certificates on someone's own
computer: a managed plugin gets `keystore` when that person says yes, also
when an update adds it, and it's forgotten once everyone has signed out.
Changed test assertions: the fixture plugin needs a grant now, as managed
alone is no longer enough, and the bridge gets an options argument.
2026-11-04 03:23:45 +01:00
Linus Rath
f0e874103d
fix: take back certificate grants when a session ends without a sign-out
2026-11-04 03:23:45 +01:00
Linus Rath
b1f26a93bf
feat: let an organisation turn the system certificate store off by policy
2026-11-04 03:23:44 +01:00
Linus Rath
484ce34f5d
Merge branch 'feat/do-browser-signin' into feat/desktop-offline
2026-11-04 03:19:32 +01:00
Linus Rath
cb9a5ac810
Merge branch 'feat/do-edit-attachments' into feat/desktop-offline
2026-11-04 03:16:35 +01:00
Linus Rath
466fa7f974
fix: keep the desktop app's session secret and admin password out of its server's environment
2026-11-04 03:15:42 +01:00
Linus Rath
a9e33ec2d6
fix: stop a page wiping another account's plugin secrets by naming it in the desktop app
...
A wipe by name took any username and server with no session behind it. It
now needs a sealed cookie the account got while it was signed in, since a
dropped account has no session cookie left. The old wipe test asserted that
a name alone was enough, which is the behaviour being removed.
2026-11-04 03:15:35 +01:00
Linus Rath
adc86cf4f7
fix: say where the device list is when turning push off could not reach the server
2026-11-04 03:14:00 +01:00
Linus Rath
149d08d87b
test: load the preview route once before its cases, so a slow import can't spill into them
2026-11-04 03:13:59 +01:00
Linus Rath
97b3ddefae
test: cover what the page tells the worker about a quiet login
2026-11-04 03:13:59 +01:00
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
f0517ecd08
test: type the sign-out push test's fake client
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
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