From c5a4cb34887fd853352538241f55ce112b8274f1 Mon Sep 17 00:00:00 2001 From: Sucukdeluxe Date: Sun, 31 May 2026 14:29:17 +0200 Subject: [PATCH] Fix: Account-Status ueberlebt Settings-Save (Badge bleibt nach Dialog-Speichern) Folge-Fix zum Sofort-Check (efb5696): updateSettings uebernahm debridAccountStatuses aus dem (evtl. veralteten) Renderer-Settings-Patch statt aus dem Manager. Speichern direkt nach Hinzufuegen+Pruefen eines Accounts konnte so den frisch geprueften Status ueberschreiben -> Badge sprang zurueck auf "Noch nicht geprueft". debridAccountStatuses ist main-owned Runtime-State (nur via applyDebridAccountStatuses gesetzt) -> wird in updateSettings jetzt aus dem Live-Manager bewahrt (wie die Usage-Counter). Schuetzt auch den "Alle pruefen"+Settings-Save-Pfad. 643 Tests gruen, tsc 9. Co-Authored-By: Claude Opus 4.8 (1M context) --- src/main/app-controller.ts | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/main/app-controller.ts b/src/main/app-controller.ts index c642549..c4b9b6c 100644 --- a/src/main/app-controller.ts +++ b/src/main/app-controller.ts @@ -292,6 +292,12 @@ export class AppController { nextSettings.debridLinkApiKeyTotalUsageBytes = Object.fromEntries( Object.entries(liveSettings.debridLinkApiKeyTotalUsageBytes || {}).filter(([keyId]) => getDebridLinkApiKeyIds(nextSettings.debridLinkApiKeys).includes(keyId)) ); + // debridAccountStatuses ist main-owned Runtime-State (wird NUR von + // applyDebridAccountStatuses gesetzt). Der Renderer schickt in seinem Settings- + // Patch eine evtl. veraltete Kopie mit; die Live-Version bewahren, damit ein + // Settings-Save (z.B. direkt nach Hinzufuegen+Pruefen eines Mega-Accounts im + // Dialog) einen frisch geprueften Status nicht ueberschreibt. + nextSettings.debridAccountStatuses = { ...(liveSettings.debridAccountStatuses || {}) }; const retentionChanged = previousSettings.historyRetentionMode !== nextSettings.historyRetentionMode; this.settings = nextSettings; if (retentionChanged) {