From d2b20659f18403b182fa10e4cb153a0015a88963 Mon Sep 17 00:00:00 2001 From: s3d-i Date: Tue, 30 Dec 2025 10:47:14 +0800 Subject: [PATCH] fix(persistence): guard parsing errors and preserve falsy configs (#850) --- Cargo.toml | 9 ++++++++- .../src/main/windows/shared/persistence.ts | 9 ++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index f24837276..6dc0ba45b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,5 +1,12 @@ [workspace] -members = [ "crates/tauri-plugin-ipc-audio-transcription-ort", "crates/tauri-plugin-ipc-audio-vad-ort", "crates/tauri-plugin-mcp", "crates/tauri-plugin-rdev", "crates/tauri-plugin-window-pass-through-on-hover", "crates/tauri-plugin-window-router-link" ] +members = [ + "crates/tauri-plugin-ipc-audio-transcription-ort", + "crates/tauri-plugin-ipc-audio-vad-ort", + "crates/tauri-plugin-mcp", + "crates/tauri-plugin-rdev", + "crates/tauri-plugin-window-pass-through-on-hover", + "crates/tauri-plugin-window-router-link" +] resolver = "2" [workspace.package] diff --git a/apps/stage-tamagotchi/src/main/windows/shared/persistence.ts b/apps/stage-tamagotchi/src/main/windows/shared/persistence.ts index a6d5a3a50..f83bcb3fc 100644 --- a/apps/stage-tamagotchi/src/main/windows/shared/persistence.ts +++ b/apps/stage-tamagotchi/src/main/windows/shared/persistence.ts @@ -7,7 +7,14 @@ import { app } from 'electron' import { throttle } from 'es-toolkit' function parseOrFallback(config: string, fallback: T | undefined): T | undefined { - return safeDestr(config) || fallback + try { + const parsed = safeDestr(config) + return parsed ?? fallback + } + catch (error) { + console.warn('Invalid config persisted to disk, resetting to default', error) + return fallback + } } const persistenceMap = new Map()