fix(fuse,core,cli,gui): show a refused session as expired, not offline

A refresh token Proton refused, or a deleted or disabled account, was
treated as a lost connection: the mount came up "offline", the probe
retried forever and logged only at debug, and nothing told the user that
only signing in again helps (issue #35).

session_revoked() names those errors. The root fetch, probe, drain,
event poll, event seed and photos root now set session_expired, log one
warning naming `pdfs login`, and stop retrying. Cached files stay
readable and changes stay queued.

Response::Status carries session_expired (serde default false). The
tray shows "Session expired — sign in again" with a Sign In Again…
item that opens the app's sign-in page; the app's status and Sync card
say the same with a button. `pdfs status` and `pdfs diagnose` report it.
New strings are translated in every catalog.

docs/BUGS.md B202.
This commit is contained in:
nvrl committed 2026-10-09 11:27:09 +02:00
1 parent 6363125fec
commit bf43476e88
24 files changed
+2915 -2416

No files matched your search

+289 -264
View File
File diff suppressed because it is too large. Load diff
+289 -264
View File
File diff suppressed because it is too large. Load diff
+289 -264
View File
File diff suppressed because it is too large. Load diff
+289 -264
View File
File diff suppressed because it is too large. Load diff
+289 -264
View File
File diff suppressed because it is too large. Load diff
+289 -264
View File
File diff suppressed because it is too large. Load diff
+293 -268
View File
File diff suppressed because it is too large. Load diff
+289 -264
View File
File diff suppressed because it is too large. Load diff
+289 -264
View File
File diff suppressed because it is too large. Load diff