real-debrid-downloader/tasks/todo.md
Sucukdeluxe 96bcbd13d7 Ember-Theme: warmer Amber-Akzent auf kühlem Navy
Redesign-Entscheid des Users (siehe design-mockups/): Aurora-Flavor "Ember".
Re-Skin der Dark+Light-Theme-Variablen + hartcodierte Cyan-Stellen:

- --accent Cyan #38bdf8 -> Amber #f2942d, neue --accent-2 Koral #ff7a5c
- Surfaces/Text/Muted leicht ins Warme verschoben (Warm-Kalt-Spannung:
  Amber-Signal auf kühlem Navy bleibt erhalten)
- Download-Progress Cyan-Gradient -> Amber->Koral (3 Stellen)
- Accent-Button + Border -> Amber
- Speed-Chart (App.tsx Canvas) Akzent -> Amber
- Grün (Entpacken/Online/Erfolg) bleibt semantisch unverändert

Bewusst KEINE Glas-/Glow-/Gradient-Mesh-Effekte (User lehnt KI-Look ab) —
nur die warme Farbwelt auf der bestehenden flachen Struktur.

design-mockups/: 4 Erst-Richtungen + Aurora-Flavor-Switcher + Forge (Referenz).
tasks/todo.md: Bug-/Feature-Analyse (3 parallele Subagents).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-23 16:17:47 +02:00

4.5 KiB
Raw Blame History

Real-Debrid-Downloader — Analyse & Verbesserungen (2026-05-23)

Tiefe Analyse via 3 parallele Subagents (Bugs / Features / UI) + 4 Design-Mockups.


A. BUGS / ROBUSTHEIT (verifiziert gegen Quellcode)

Roter Faden: Die Deferred-Post-Processing-Pipeline (eingeführt um den Extract-Slot schnell freizugeben) ist nur halb ins Abbruch-/Lifecycle-Management integriert. Genau der Bereich des v1.7.156-Fixes.

HOCH

  • H1 — Globaler Stop/Shutdown bricht Deferred-Post-Processing nicht ab. abortPostProcessing (download-manager.ts:7053) iteriert nur über packagePostProcessAbortControllers, nie über packageDeferredPostProcessAbortControllers. Bei Stop/Shutdown/clearAll laufen MKV-Move/Archiv-Cleanup/Rename weiter, während synchron persistiert wird → FS-Zustand ≠ Session-State (halb verschobene Datei, halb gelöschtes Archiv).
  • H2 — Hybrid-Post-Extract feuert MKV-Collection/Rename als losgelöstes Promise (download-manager.ts:11334). In keiner Tracking-Map, kein shouldAbort. Cancel/Reset während Hybrid-Collect → Dateien werden trotzdem verschoben/gelöscht.
  • H3 — 0-Byte-Datei wird als vollständig akzeptiert wenn keine Größeninfo (download-completion.ts:129, source "stream-end"). Hoster antwortet HTTP 200 ohne Content-Length + schließt sofort → Item "Fertig" mit leerer Datei, kein Auto-Redownload.

MITTEL

  • M1 — Deferred-Post-Extraction nicht in packagePostProcessTasks (download-manager.ts:11974). Scheduler-Abschluss (8154) + finishRun (12310) sehen Deferred-Tasks nicht → Run-Ende/Summary feuert während noch Dateien verschoben werden, State-Reset mitten in FS-Arbeit.
  • M2 — blockAllPersistence wird nach Backup-Import nie zurückgesetzt (app-controller.ts:678). Weiterarbeiten ohne Neustart → persistSoon ist dauerhaft No-Op → bei hartem Crash alle Änderungen weg.
  • M3 — cancelPendingAsyncSaves wartet nicht auf laufenden Async-Save (storage.ts:1064). I/O-Overlap beim Import (Datenintegrität durch Generation-Guard geschützt, nur Robustheit).

NIEDRIG

  • N1 — Toter Code in findReadyArchiveSets (download-manager.ts:10847). Unbedingtes ready.add+continue macht strengeren Disk-Fallback-Block (untracked-pending-Schutz) unerreichbar.

Empfehlung: H1 + H2 + M1 zusammen fixen (eine kohärente Härtung der Deferred-Pipeline). H3 ist klein & unabhängig. M2 trivial.


B. FEATURES / UX-GAPS (nach Mehrwert/Aufwand)

App läuft headless auf Windows-Server → Nutzer sitzt nicht davor. Größte Lücke: keine Benachrichtigungen.

  1. Webhook/Push-Benachrichtigungen (Discord/Telegram/ntfy) — SM. Bei Paket fertig/Fehler/Quota/Provider-down aufs Handy. Neuer notifier.ts, Hooks an Completion-Punkten. Höchster ROI.
  2. Fernsteuerung über bestehenden Debug-Server (POST-Endpunkte) — SM. Server hat schon HTTP + Token-Auth, aber nur GET. POST /control/add-links, /start, /stop → vom Handy steuern.
  3. URL-Duplikat-Erkennung beim Hinzufügen — S. History-urls existiert, wird aber nie geprüft → versehentliche Re-Downloads verschwenden Quota. Warnen: "3 Links bereits geladen".
  4. Vereinheitlichter Pre-Flight-Check + Bulk-Skip toter Links — M. Vor Start Größe/Name/Online für ganze Queue, "alle offline überspringen"-Button.
  5. Speicherplatz-Vorabprüfung vor Start — S. Aktuell keine Free-Space-Prüfung → Abbruch mitten im Download bei voller Platte.
  6. Konsolidierte Fehler-Ansicht — M. Alle fehlgeschlagenen Items flach + Fehlertext + "alle erneut versuchen".
  7. Per-Provider-Statistik — M. Rohdaten (providerTotalUsageBytes) existieren, werden nur nicht dargestellt. Welches Abo lohnt sich?
  8. Auto-Retry fehlgeschlagener Pakete nach Wartezeit — SM. Quota/Cooldown-Fails am nächsten Tag automatisch neu versuchen.
  9. Plex/Jellyfin Library-Refresh nach MKV-Move — S. Neue Folgen sofort sichtbar. Gleicher Hook wie #1.
  10. Watch-Folder für DLC/Link-Auto-Import — M. Ordner überwachen → automatisch importieren+starten.

C. DESIGN-MOCKUPS

4 Varianten in design-mockups/ (index.html = Vergleich):

  1. Aurora — verfeinerte Dark-Evolution (premium, vertraut, geringstes Risiko)
  2. Command — Terminal/Ops-Dashboard (max. Dichte, Monospace, Status-LEDs)
  3. Vellum — Light Editorial (warmes Papier, Serif, mutige helle Alternative)
  4. Nebula — Neon/Synthwave (Magenta-Cyan-Glow, auffällig)

→ Nutzer wählt Richtung (oder Mischung).


REVIEW / ERGEBNISSE

(wird nach Umsetzung gefüllt)