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) <noreply@anthropic.com>
This commit is contained in:
Sucukdeluxe 2026-05-31 14:29:17 +02:00
parent efb5696c13
commit c5a4cb3488

View File

@ -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) {