From 18862bb8e0b4f8e7a56fc69d2910e186a88ff783 Mon Sep 17 00:00:00 2001 From: Sucukdeluxe Date: Wed, 4 Mar 2026 04:24:45 +0100 Subject: [PATCH] Release v1.5.97 Co-Authored-By: Claude Opus 4.6 --- package.json | 2 +- src/main/download-manager.ts | 12 +++++++----- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 3253db5..8bdd413 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "real-debrid-downloader", - "version": "1.5.96", + "version": "1.5.97", "description": "Real-Debrid Downloader Desktop (Electron + React + TypeScript)", "main": "build/main/main/main.js", "author": "Sucukdeluxe", diff --git a/src/main/download-manager.ts b/src/main/download-manager.ts index e9a56d0..2f1fb66 100644 --- a/src/main/download-manager.ts +++ b/src/main/download-manager.ts @@ -5828,17 +5828,19 @@ export class DownloadManager extends EventEmitter { const hybridArchiveStartTimes = new Map(); let hybridLastEmitAt = 0; - // Mark hybrid items as pending, others as waiting for parts - // If all items are completed, no item should show "Warten auf Parts" - const hybridItemIds = new Set(hybridItems.map((item) => item.id)); + // Mark items based on whether their archive is actually ready for extraction. + // Only items whose archive is in readyArchives get "Ausstehend"; others keep + // "Warten auf Parts" to avoid flicker between hybrid runs. const allDownloaded = completedItems.length >= items.length; for (const entry of completedItems) { if (isExtractedLabel(entry.fullStatus)) { continue; } - if (hybridItemIds.has(entry.id)) { + if (allDownloaded) { + // Everything downloaded — all remaining items will be extracted entry.fullStatus = "Entpacken - Ausstehend"; - } else if (allDownloaded) { + } else if (hybridFileNames.has((entry.fileName || "").toLowerCase()) || + (entry.targetPath && hybridFileNames.has(path.basename(entry.targetPath).toLowerCase()))) { entry.fullStatus = "Entpacken - Ausstehend"; } else { entry.fullStatus = "Entpacken - Warten auf Parts";