diff --git a/tools/ui/src/lib/stores/init.ts b/tools/ui/src/lib/stores/init.ts index ce2dcfbd0..4473349f9 100644 --- a/tools/ui/src/lib/stores/init.ts +++ b/tools/ui/src/lib/stores/init.ts @@ -11,12 +11,25 @@ import { validateApiKey } from '$lib/utils/api-key-validation'; let startup: Promise | null = null; +/** Ask the browser not to evict conversations and settings under storage pressure, best effort. */ +async function requestPersistentStorage(): Promise { + try { + if (!navigator.storage?.persist || (await navigator.storage.persisted())) return; + + await navigator.storage.persist(); + } catch { + // unsupported or denied, storage stays best-effort + } +} + export function initStores(): Promise { if (!browser) return Promise.resolve(); startup ??= (async () => { await MigrationService.runAllMigrations(); + void requestPersistentStorage(); + settingsStore.initialize(); permissionsStore.initialize(); toolsStore.initialize();