You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat(ui): reconnecting spinner while the daemon reinits on profile switch / refresh
After a profile switch or Refresh state, the extension re-supplies the vault
passphrase and hot-reloads the daemon — a headed reinit that takes ~30s. The
daemon badge previously kept showing the stale 'anonymous' message during that
window, so it looked stuck. Add a transient 'reconnecting' store flag set when
profile:switch / dashboard:refresh is sent and cleared when the daemon next
reports authenticated (or a 60s safety timeout); the badge shows a spinning
'Reconnecting the daemon to this profile… ~30s' instead of the stale status.
Copy file name to clipboardExpand all lines: CHANGELOG.md
+8Lines changed: 8 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,6 +6,14 @@ All notable changes to this project are documented here. Format follows
6
6
7
7
## [Unreleased]
8
8
9
+
## [0.8.51] — 2026-06-04 — "Reconnecting…" spinner during daemon reinit
10
+
11
+
> Follow-up UX for the 0.8.49 passphrase fix. After a profile switch or "Refresh state" the extension re-supplies the vault passphrase and hot-reloads the daemon — a headed reinit that takes ~30s. The daemon badge kept showing the stale "anonymous" message during that window, so it looked stuck even though it was working (confirmed in the field: the daemon goes green ~30s after a switch).
12
+
13
+
### Added
14
+
15
+
-**Reconnecting spinner on the daemon badge** ([`views.tsx`](packages/webview/src/views.tsx), [`store.ts`](packages/webview/src/store.ts), [`App.tsx`](packages/webview/src/App.tsx)). A transient `reconnecting` store flag is set when `profile:switch` / `dashboard:refresh` is sent and cleared when the daemon next reports `authenticated` (or a 60s safety timeout). While active and the daemon is not yet authenticated, the badge shows a spinning **"Reconnecting the daemon to this profile… this can take ~30s."** instead of the stale anonymous/vault-locked status — so the wait reads as progress, not a hang.
> Reported via a diagnostics bundle: after switching to a **passphrase-protected** profile, the dashboard showed "Session active and ready" while the daemon showed "Daemon sees anonymous session — use Refresh state to reconnect", and Refresh did not help. Root cause: the long-lived daemon is spawned with `PERPLEXITY_VAULT_PASSPHRASE` read from SecretStorage **once at spawn**; a profile switch only touched `.reinit`, which re-ran `init()` with the *stale/absent* passphrase, so the daemon could not unseal the new profile's vault (`Vault locked: no keychain, no env var, no TTY`). The vault unseal cache also pinned the first profile's material (`Vault decrypt failed: wrong passphrase`). The extension could read the vault (the user had typed the passphrase) — hence the two badges disagreed.
0 commit comments