34997bcbd1
- N98: logoutClient and handleLogout now call removeFallbackSession() (removes only the 4 session credential keys) instead of window.localStorage.clear(), so settings, unsent drafts, PiP position, and status are preserved across a normal logout. localStorage.clear() stays reserved for clearLoginData() (the explicit factory-reset path). - N99: the useSyncState callback now handles ERROR/STOPPED. A sync failure before the first PREPARED (offline at startup, homeserver unreachable) shows a dedicated error splash with a Retry button (startMatrix) instead of an endless "Heating up" spinner alongside a contradictory "Connection Lost!" banner. Guarded by a hasPreparedRef so post-PREPARED transient errors still go through <SyncStatus>; PREPARED self-heals the splash on recovery, and the redundant banner is suppressed while the splash is shown. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>