feat(settings): storage usage tile with persistence status (#120)
CI / Build & Quality Checks (push) Canceled after 0s
CI / Trigger Desktop Build (push) Canceled after 0s
CI / Secret scan (gitleaks) (push) Canceled after 0s
CI / Docker image build & smoke test (push) Canceled after 0s
CI / Playwright smoke (e2e) (push) Canceled after 0s
CI / Build & Quality Checks (push) Canceled after 0s
CI / Trigger Desktop Build (push) Canceled after 0s
CI / Secret scan (gitleaks) (push) Canceled after 0s
CI / Docker image build & smoke test (push) Canceled after 0s
CI / Playwright smoke (e2e) (push) Canceled after 0s
One tile under Settings → General → Storage: total local usage vs the browser's quota from navigator.storage.estimate(), the Chromium usageDetails breakdown when available (IndexedDB = sync cache + encryption keys + search index; Cache Storage = offline app files), and whether the browser granted persistent storage — green "Protected" or amber "May be evicted" with a "Keep my data" button that calls storage.persist(). That last bit is the useful diagnostic for the KE-1 storage-eviction cluster. No clear button: media lives in the browser's own HTTP cache (not in the estimate, and not clearable from a page), the crypto store must never be casually cleared, and the search-index clear already lives in Message Search. The About page's "Clear Cache & Reload" now says it deletes this device's encryption keys too. Hidden entirely when estimate() is missing. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PPmy3tPq869XDW4njjVaKA
This commit is contained in:
@@ -159,7 +159,7 @@ export function About({ requestClose }: AboutProps) {
|
||||
>
|
||||
<SettingTile
|
||||
title="Clear Cache & Reload"
|
||||
description="Clear all your locally stored data and reload from server."
|
||||
description="Clear all your locally stored data and reload from server. This also deletes this device's encryption keys — older encrypted messages stay unreadable here unless key backup is set up."
|
||||
after={
|
||||
<Button
|
||||
onClick={() => clearCacheAndReload(mx)}
|
||||
|
||||
Reference in New Issue
Block a user