docs: Durchsicht 12.09.2026 — Bericht mit 30 Funden, fünf Ursachen-Kandidaten für die drei Filme, Messungen

Kompletter Check von Kern, Haupt und Fenster (5.6.1). Wichtigster Fund:
der Forum-Beta-Key vom September enthält ein @, Rippys Muster schneidet
ihn ab, MakeMKV läuft dann unlizenziert. Dazu: stiller Rip-Start ohne
Ablage, Serien-Disc-2-Umbenennung, tauber Kern-Neustart, Wache-Takt-
Ketten, Vorgangs-Stand pro HandBrake-Tick. Der Datenbank-Befund vom
01.09. war ein Messartefakt der MSIX-Schattensicht des Claude-Terminals.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Hitonabi
2026-09-12 21:13:40 +02:00
co-authored by Claude Opus 5
parent 473eea7d4e
commit 6f1add480e
+384
View File
@@ -0,0 +1,384 @@
# Durchsicht Rippy v5 (5.6.1) — Bericht vom 12.09.2026
> Anlass: Drei Filme (Der Patriot, Déjà Vu, Training Day) lassen sich auf
> einem ANDEREN PC mit Rippy nicht bearbeiten, während MakeMKV allein sie
> lesen und öffnen kann. Dazu die Bitte um einen kompletten Check von
> Kern, Haupt und Fenster.
>
> Was hier steht, ist GEMESSEN oder im Quelltext mit Zeile belegt — nichts
> ist geraten. Wo ich etwas nicht messen konnte, steht das dabei.
Stand des Repos: Branch `worktree-windows-electron`, Spitze `473eea7`,
Arbeitsbaum sauber. `npm run typecheck` grün, `npm test` grün
(450 Tests bestanden, 12 übersprungen — die Messungen, die ein Laufwerk
brauchen). Gelesen wurden ALLE 92 Quelldateien unter `rippy-windows/src`
(16 081 Zeilen), die Tests, die Bau-Konfiguration und die Protokolle des
echten Rippy auf diesem PC.
---
## 1. Die drei Filme — was am anderen PC dahintersteckt
Ich habe die Disc-Ausgaben des anderen PCs nicht; ich habe aber ALLE Wege
gefunden, auf denen Rippy scheitert, während MakeMKV allein weiterkommt.
Sie stehen in der Reihenfolge, in der ich sie für wahrscheinlich halte —
mit der Zeile, an der man sie am anderen PC in einer Minute erkennt.
**Die Protokoll-Datei liegt dort unter `%APPDATA%\Rippy\logs\rippy-JJJJ-MM-TT.log`**
(im Programm: Einstellungen → Allgemein → „Protokoll öffnen"). Die Zeilen
des Tages, an dem einer der drei Filme versucht wurde, entscheiden.
### Kandidat 1 — MakeMKV läuft dort ohne gültigen Schlüssel (Beta-Key-Fehler in Rippy)
Der frei veröffentlichte Beta-Key vom September 2026 enthält ein `@`:
`T-vwvn…6Ox4BI@N5rPp` (68 Zeichen, heute von der Herstellerseite geladen,
„valid until end of September 2026"). Rippys Muster
`KEY_MUSTER = /T-[A-Za-z0-9_]{50,}/` (`kern/werkzeuge/schluessel.ts:19`)
kennt kein `@` und schneidet den Schlüssel auf 62 Zeichen ab (Sonde 9,
gemessen an der echten Seite). Den verstümmelten Schlüssel lehnt MakeMKV
ab (5020), Rippy nimmt ihn „damit MakeMKV im Beta-Modus weiterläuft" wieder
zurück (`schluessel.ts:214-219`) — und MakeMKV läuft ohne Schlüssel.
Für DVDs ist das egal (laut Hersteller dauerhaft frei), **für Blu-rays
schaltet MakeMKV nach Ablauf des Testzeitraums ab** — nach der
Gnadenfrist („noch einige Tage", MSG 5051) beim Speichern, je nach
Fassung auch beim Öffnen. Ob das GUI am anderen PC noch in der
Gnadenfrist ist, sagt dessen Startmeldung; Rippy dagegen meldet den
Zustand nicht als Ausfall (siehe F1/F5).
Warum es bei DIR läuft: In der echten Datenbank dieses PCs steht unter
`makemkvAppKey` ein 68-Zeichen-Schlüssel MIT `@` — du hast den Key von
Hand als „Eigener Schlüssel" eingetragen. Der andere PC verlässt sich
vermutlich auf die Automatik, und die liefert den kaputten Key.
*Erkennen:* Einstellungen → MakeMKV zeigt dort gelb „BETA-MODUS — RIPS
LAUFEN" oder rot; im Protokoll steht `Schlüssel: Beta-Key abgelehnt … —
wieder entfernt`; ein gescheiterter Rip trägt `Ursache: MakeMKV ist nicht
freigeschaltet (Testzeitraum abgelaufen)`; MakeMKV-GUI zeigt beim Start
„Der Testzeitraum ist abgelaufen".
*Sofort-Abhilfe ohne neue Version:* den vollständigen Key (mit `@`) von
Hand unter Einstellungen → MakeMKV → „Eigener Schlüssel" eintragen,
„Schlüssel neu prüfen". Gilt bis 30.09.2026 — danach braucht es den
Rippy-Fix (Fund 1 unten) oder wieder Handarbeit.
### Kandidat 2 — Titel lesen bricht nach fünf Minuten ab (der Timeout, nicht die Disc)
`erkennung.titelLesen` tötet `makemkvcon info` nach 300 s
(`kern/dienste/erkennung.ts:315`, `kern/rip/makemkv.ts:170-173`) und
meldet „MakeMKV hat die Titel nach fünf Minuten nicht gelesen. Bei einer
beschädigten Disc kann das passieren". Ältere DVDs mit Kopierschutz
(Sony-ARccOS, Disney-99-Titel-Struktur) und Discs mit vielen Playlisten
brauchen im MakeMKV-GUI regelmäßig länger als fünf Minuten zum Öffnen —
das GUI wartet, Rippy nicht. Ein hart beendetes makemkvcon hinterlässt
außerdem gern den 5042-Zustand („findet kein Laufwerk"), sodass der
NÄCHSTE Versuch sofort scheitert.
*Erkennen:* `Titel-Lauf X gescheitert: MakeMKV hat die Titel nach fünf
Minuten nicht gelesen`; im GUI dauert „Disc wird geöffnet" länger als 5 min.
### Kandidat 3 — der Rip startet still nicht (Ablage oder Arbeitsordner nicht erreichbar)
`Pipeline.starten` legt den Roh-Ordner mit `mkdirSync` an
(`kern/ablauf/pipeline.ts:258`) — ohne Fangnetz. Ist die Ablage oder der
Arbeitsordner gerade nicht da (NAS aus, Netzlaufwerk noch nicht
verbunden, Buchstabe weg), fliegt eine Ausnahme aus `starten()`, der
Aufruf `void laufwerke.bereit.then(() => ripVerwaltung.starten(…))`
(`kern/index.ts:198`) verschluckt sie: **keine Meldung im Fenster, keine
Zeile im Protokoll, der Dialog schließt sich, nichts passiert** (Sonde 10:
`ENOENT … mkdir 'Q:\rippy-nicht-da\roh\…'`, gemeldet: nichts). Der Kern
stirbt dabei nicht (in Electron 44 gemessen: ein utilityProcess überlebt
eine unbehandelte Promise-Ablehnung) — er schweigt nur.
*Erkennen:* Nach `Titel-Lauf X: … s, N Titel` folgt KEINE Zeile
`Vorgang … beginnt`; die Kachel bleibt ohne Balken.
### Kandidat 4 — Disc-Typ „unbekannt" → Rippy sichert ein ISO statt zu rippen
Der Typ kommt aus `IOCTL_CDROM_DISK_TYPE` + Größe (`kern/laufwerk/disc.ts:52-59`).
Antwortet das Laufwerk darauf nicht (bei manchen USB-Brücken
`ERROR_INVALID_FUNCTION`) oder ohne Bits, steht `unknown` — die Kachel
zeigt „unbekannt" und PRESET „ISO-Abbild", der Knopf „Rippen" öffnet
trotzdem den Titel-Dialog (`LaufwerkKachel.tsx:157-166`), und nach der
Auswahl legt die Pipeline ein 1:1-Abbild an statt der gewählten Titel
(`pipeline.ts:236-241`).
*Erkennen:* `Disc eingelegt in X: unknown, … Bytes`, Kachel MEDIUM
„unbekannt", Statuszeile „Sichere 1:1-Abbild …".
### Kandidat 5 — Erkennung bleibt bei 60 %, die Automatik wartet (kein Fehler, aber „tut nichts")
Alle drei Discs tragen vermutlich englische Labels (`THE_PATRIOT`,
`DEJA_VU`, `TRAINING_DAY`). TMDb antwortet auf Deutsch („Der Patriot",
„Déjà Vu Wettlauf gegen die Zeit"); der wörtliche Vergleich
`gleichBedeutend` (`kern/metadaten/zuordnung.ts:184-195`) vergleicht nur
den deutschen `title`, nie `original_title`, und kennt keine Akzente
(Sonde 1: „Déjà Vu" ≠ „Deja Vu", „Der Patriot" ≠ „The Patriot"). Ergebnis:
Vorschlag mit 60 % statt 95 % — die Automatik startet nicht
(`automatik.ts:79-82`), im Kasten steht „Automatik wartet: Die Erkennung
ist nicht sicher genug". Wer auf Zero-Click wartet, sieht: nichts.
*Erkennen:* Kachel „Vorschlag" (gelb) statt „sehr wahrscheinlich"; die
Automatik-Zeile.
### Was ich vom anderen PC brauche, um es festzunageln
1. Die Protokoll-Zeilen des Tages (siehe oben) — am besten die ganze Datei.
2. Einstellungen → MakeMKV: der Text der Schlüssel-Karte, und MakeMKV-Version.
3. Ob die drei Discs DVD, Blu-ray oder 4K sind.
4. Was genau „nicht bearbeiten" war: kein Start, roter Text, ISO, oder ewig „liest die Titel".
---
## 2. Fehler — nach Schwere, mit Beleg
Schwere: **HOCH** = Datenverlust, Ausfall oder stilles Scheitern ·
**MITTEL** = falsches Verhalten, das der Nutzer bemerkt · **NIEDRIG** =
Schönheit, Bedienung, Nebensache. Jede Nummer verweist auf Datei:Zeile im
Stand `473eea7`.
### HOCH
**F1 · Beta-Key mit `@` wird abgeschnitten → MakeMKV unlizenziert**
`kern/werkzeuge/schluessel.ts:19` (`KEY_MUSTER`), `:24-27`, `:212-219`.
Beleg: Sonde 9 an der heute geladenen Forum-Seite: Seite 68 Zeichen mit
`@`, Rippy zieht 62. Wirkung: siehe Kandidat 1 — auf jedem PC ohne
Hand-Key laufen Blu-ray-Rips nach dem Testzeitraum nicht mehr, und Rippy
zeigt dazu GELB „BETA-MODUS — RIPS LAUFEN" (`Karten.tsx:409-413`,
`App.tsx:115`). Dazu: `extractGueltigBis` (`:32-37`) erkennt „end of
September 2026" nicht → kein Ablaufdatum im Fenster (gemessen: leer).
Fix: Muster auf alles bis Leerzeichen/`<` (z. B. `/T-[^\s<"']{50,}/`),
Ablehnung ROT mit Klartext „Blu-ray-Rips laufen nicht", und ein Test mit
dem echten September-Schlüssel.
**F2 · Rip-Start ohne erreichbare Ablage/Arbeitsordner scheitert STILL**
`kern/ablauf/pipeline.ts:258` (`mkdirSync` ohne try), ebenso `:646`
(Audio-CD) und `:721` (ISO); Aufrufer `kern/index.ts:198` und `:236`.
Beleg: Sonde 10 + Electron-Messung (utilityProcess lebt weiter, Fehler
unsichtbar). Verstößt gegen R4. Fix: `starten()` in try/catch, Fehler als
`rip-status fehler` melden UND ins Protokoll; zusätzlich vor dem Start
eine Schreibprobe am Roh-Ordner, damit die Kachel sagt „Ablage nicht
erreichbar" statt zu schweigen; im Kern ein `process.on('unhandledRejection')`,
das ins Protokoll schreibt.
**F3 · Serien: zweite Disc derselben Staffel — Folgen werden nicht benannt, Überschreiben möglich**
`kern/ablage/struktur.ts:224-246`: `episodenUmbenennen` zählt ALLE `.mkv`
im Season-Ordner; liegen dort schon `S01E01`/`S01E02` der ersten Disc,
heißt es „Umbenennen übersprungen: 4 Dateien, 2 Zuordnungen" (Sonde 2,
real ausgeführt). Der Serien-Merker (5.5.0) und „ab Folge" laufen damit ab
Disc 2 ins Leere. Schlimmer: Folgen behalten bis dahin MakeMKVs Namen
(`ablegen.ts:198-209`, `dateinamen.ts:121`), und `title_t00.mkv` der
zweiten Disc landet im SELBEN Ordner (`ablegen.ts:152-156`) — HandBrake
bzw. `renameSync` (`ablegen.ts:95-104`) überschreiben eine gleichnamige
Datei der ersten Disc ohne Warnung, wenn deren Umbenennung ausgefallen
war (kein TMDb). Der bestehende Test `test/ablage.test.ts:106-116`
schreibt das Verhalten sogar fest. Fix: nur die NEUEN Dateien dieser
Disc umbenennen (Liste übergeben statt Ordner lesen); Zielnamen vor dem
Encode auf Kollision prüfen und nie überschreiben.
**F4 · Kern-Neustart: das Fenster bleibt taub**
`haupt/kernstart.ts:59-74` startet den Kern bis zu 3× je Minute neu, aber
`fensterVerbinden` läuft nur bei `did-finish-load` (`haupt/index.ts:245-253`);
das Fenster hält den toten Port (`kernverbindung.ts:268-282`), `anKern`
schickt ins Leere, und `App.tsx:92` zeigt keinen Fehler, weil
`verbindung.kern` noch die alte Bereit-Meldung ist. Wirkung: Laufwerke
frieren ein, Knöpfe tun nichts — bis Rippy komplett neu gestartet wird.
Das KONZEPT verspricht „Der Kern ist abgestürzt, ich starte ihn neu".
Fix: im `spawn`-Ereignis des neuen Kerns `fensterVerbinden` erneut
aufrufen und eine Zeile im Fenster zeigen.
### MITTEL
**F5 · Schlüssel-Prüfung urteilt ohne Grundlage**
`schluessel.ts:108-131`: `info disc:9999` liefert ohne angeschlossenes
Laufwerk NUR 5042/5010 (heute gemessen) — keine Lizenzzeile, also
`ok: true` und „angenommen", egal was im Register steht. `:179`:
das Ergebnis von `keyAblegen` (reg add) wird ignoriert — „hinterlegt"
steht auch dann im Protokoll, wenn nichts geschrieben wurde. `:194-237`:
Ablehnung liefert `weiterBetrieb: true` (gelb) statt rot.
**F6 · Jeder Auswurf legt eine weitere Takt-Kette der Disc-Wache an**
`kern/laufwerk/wache.ts:285-303`: `runde()` plant IMMER einen neuen
Timer, ohne den laufenden zu löschen; `laufwerke.ts:175` ruft `runde()`
nach jedem Auswurf. Beleg: Sonde 3 — drei Ketten, neunmal statt fünfmal
gelesen. Wirkung: nach 20 Discs fragt Rippy die Laufwerke alle 150 ms
statt alle 3 s (CreateFileW + IOCTL je Runde). Fix: vorhandenen Timer
in `runde()` erst löschen.
**F7 · Während der Kompression wird jede Sekunde die ganze Welt neu vermessen**
Kette: HandBrake-Fortschritt (mit ETA ≈ 1×/s, `handbrake.ts:152-158`) →
`warteschlange.ts:141-146``vorgaenge.ts:118-124` `senden()`
`stand()` (`:217-260`) läuft mit `ordnerGroesse` rekursiv durch JEDEN
Roh-Ordner plus `fremdeOrdner`, danach `speicher.senden()` mit zwei
`statfsSync` (`speicher.ts:237-247`) — alles synchron im Kern; dann geht
die volle Vorgangsliste an Haupt und Fenster, das komplett neu zeichnet
(`kernverbindung.ts:123-125`). Auf einer NAS als Arbeitsordner ist das
ein Netz-Ordnerlauf pro Sekunde. Fix: Fortschritt als kleine Nachricht
getrennt vom Vorgangs-Stand; Roh-Größen nur bei Phasenwechsel oder
gedrosselt (z. B. alle 30 s) messen.
**F8 · Das Rettungs-Abbild wird gelöscht, wenn der Rip daraus leer ausgeht**
`pipeline.ts:279-300`: `beenden()` entfernt den ganzen Roh-Ordner, wenn
keine MKV entstand — inklusive `rettung.iso`, für das die Disc stundenlang
Sektor für Sektor gelesen wurde (`halbeDateienEntfernen` schont es,
`beenden` nicht). Fix: `rettung.iso` + Bericht vor dem `rmSync` verschonen.
**F9 · Halbe HandBrake-Ausgabe bleibt nach Abbruch/Fehler liegen**
`handbrake.ts:282-285,300-308`, `ablegen.ts:279-286`: nach `kill()` oder
Fehler wird die angefangene Datei nicht entfernt. Ohne Arbeitsordner
liegt sie direkt in `Filme\<Titel>\` — Jellyfin zeigt einen kaputten
Film. Fix: nach `.part`/Zwischenname encodieren, erst am Ende umbenennen;
bei Abbruch löschen.
**F10 · Typ „unbekannt" heißt stumm ISO, obwohl der Nutzer Titel gewählt hat**
`pipeline.ts:236-241` gegen `LaufwerkKachel.tsx:157-166`/`Uebersicht.tsx:114-120`
(siehe Kandidat 4). Dazu `disc.ts:49`: UHD wird allein an ≥ 55 GiB
erkannt — eine 4K-Disc mit 48 GB Daten wird „bluray" (Sonde 4) und
bekommt das Blu-ray-Preset. Fix: liegt ein Titel-Auftrag vor, immer
MakeMKV; UHD-Merkmal am Gerät nachmessen (Regel D) statt Größe.
**F11 · Laufwerks-Gesundheit beschuldigt das falsche Gerät**
`kern/laufwerk/ereignisse.ts:41-44`: der XPath nimmt Provider `cdrom` UND
`disk` für ALLE Geräte; `:67-76` filtert nicht nach `\Device\CdRomN`.
Eine hustende Festplatte oder ein zweites Laufwerk erzeugt „VERDACHT:
DIE HARDWARE" für die Kachel des Blu-ray-Laufwerks. Fix: Gerät des
Laufwerksbuchstabens ermitteln und nur dessen Ereignisse zählen.
**F12 · Zeiten stehen in UTC, nicht in deiner Uhrzeit**
`bausteine.tsx:35-38` (`datumKurz`), `Karten.tsx:269,276,418,574`,
`VerlaufKarte.tsx:295`: ISO-Strings werden abgeschnitten — 21:30 Uhr
erscheint als 19:30 (Sonde 5). Fix: lokal formatieren.
**F13 · Eigener Werkzeug-Pfad eingetragen → Anzeige bleibt „NICHT GEFUNDEN"**
`kern/index.ts:245-254`: nach `werkzeug.*` wird `werkzeuge.senden()` nicht
angestoßen (auch `makemkvAppKey` löst keinen Schlüssel-Lauf aus). In der
Erst-Einrichtung (`ErstEinrichtung.tsx:112-121`) bleibt die rote Zeile
stehen, obwohl der Pfad stimmt. Fix: nach diesen Schlüsseln messen bzw.
prüfen.
**F14 · Erkennung kennt weder Originaltitel noch Akzente**
`zuordnung.ts:184-195,302-309`, `tmdb.ts:24-34` (kein `original_title`).
Siehe Kandidat 5. Fix: `original_title`/`original_name` mitvergleichen,
Akzente falten (NFD + Kombinationszeichen entfernen).
**F15 · Tray „Beenden" tötet einen laufenden Rip ohne Rückfrage**
`haupt/index.ts:278-281,383-387`, `tray.ts:291-297`: `app.quit()` → Kern
`kill()` → die Leine reißt makemkvcon/HandBrake mit — 40 Minuten Rip weg.
Fix: bei aktiven Vorgängen nachfragen.
**F16 · MakeMKV-Installer aus dem Internet Archive mit Adminrechten**
`beschaffen.ts:143-155,193-232`, `haupt/index.ts:206-216`: fällt der
Hersteller aus, wird eine EXE vom Archiv geladen und per UAC gestartet;
geprüft wird nur die Versions-Ressource (fälschbar). Für ein Programm im
Bekanntenkreis ein Risiko. Fix: SHA-256 einer bekannten Fassung
mitführen oder Archiv-Quelle nur nach Bestätigung.
### NIEDRIG
**F17** „Roh-Dateien löschen" und „Ordner löschen" ohne Rückfrage — ein Klick, 30 GB weg (`Karten.tsx:315-319,351-353`; `vorgaenge.ts:305-349`).
**F18** Eingabefelder speichern nur beim Verlassen; Enter und Bereichswechsel verlieren Tipparbeit (`bausteine.tsx:356-389`).
**F19** Dialoge ohne Escape, Fokus-Fang, `role="dialog"` (`bausteine.tsx:453-473`).
**F20** Toast „Disc erkannt" bis zu dreimal je Disc — Erkennung, Nachprüfung, „Ändern" (`haupt/index.ts:126-134`).
**F21** Poster-Fehler wird verschluckt: Rückgabe von `posterSpeichern` ignoriert (`ablegen.ts:385-387`, R4).
**F22** `finden()` ruft bei fehlendem MakeMKV dreimal `reg query … /s` synchron (bis 45 s) — bei jedem Aufruf, auch alle 15 s im Update-Lauf (`katalog.ts:168-203`).
**F23** NFO ohne `<uniqueid type="tmdb">` — Jellyfin muss über Titel/Jahr raten (`nfo.ts:187-209`).
**F24** Doppelter Zielordner bekommt den Zusatz „[bluray-2]" (`struktur.ts:158-170`, `vorgangsName.slice(0,8)`).
**F25** ASCII-Umlaute in Knopftexten: „auswaehlen", „Titel ueberspringen", „naechsten" (`LaufwerkKachel.tsx:161,413,415`).
**F26** Phase `rettet` fehlt in der Haupt-Liste aktiver Vorgänge (`haupt/index.ts:184`) — Update-Sperre und Taskleiste greifen im Rettungs-Abbild nicht.
**F27** „Neu komprimieren" wird auch für verschobene (unkomprimierte) Vorgänge angeboten (`vorgaenge.ts:245`) — Klick endet in „Roh-Dateien sind nicht mehr da".
**F28** Automatik schweigt bei Typ `unknown`/`cd` (`automatik.ts:77`) — kein Grund im Kasten.
**F29** Ton: `--first-audio` nimmt je Sprache genau EINE Spur (`handbrake.ts:56`) — Kommentar- oder Stereo-Spuren derselben Sprache fallen weg. Bewusst? Dann ins Fenster schreiben.
**F30** Audio-CD: `audioSpurLesen` blockiert den Kern synchron je Spur (`disc.ts:200-220`) — Abbrechen wirkt erst zwischen zwei Spuren.
---
## 3. Auffälligkeiten (keine Fehler, aber wissenswert)
**A1 · Der „Datenbank-Befund vom 01.09." ist gelöst — ein Messartefakt.**
Das Terminal der Claude-Desktop-App läuft in einem MSIX-Paket; alles,
was daraus startet, sieht `%APPDATA%`, `%LOCALAPPDATA%` und `HKCU`
virtualisiert (Schattenkopie unter
`%LOCALAPPDATA%\Packages\Claude_pzs8sxrjxfjjc\LocalCache\…`). Deshalb
zeigte `%APPDATA%\Rippy\rippy.db` hier Schema 3 vom 01.09. — die ECHTE
Datei (über `\\localhost\C$\…` gelesen) ist Schema 4, 36 864 Bytes, Stand
04.09. 22:02, mit allen Einstellungen. Rippy ist unschuldig. Folge: die
Lizenzzeilen 5054/5051 in `beweise/messungen/2026-09-03-makemkvcon-info-kizuna.txt`
kamen aus dem Paket-Register ohne Schlüssel — kein Beleg für deinen
echten Zustand. (Als Gedächtnis-Notiz für künftige Sitzungen hinterlegt.)
**A2 · Rippy schreibt in MakeMKVs eigene Einstellungen** (`HKCU\Software\MakeMKV`:
`app_Key`, `app_DefaultSelectionString`, `app_UpdateEnable`). Damit
nimmt auch das MakeMKV-GUI seitdem ALLE Spuren mit (größere Dateien beim
Handbetrieb) — beabsichtigt, aber nirgends im Fenster gesagt.
**A3 · Das Rettungs-Abbild ist bei AACS-Discs (Blu-ray/4K) ungeprüft.**
Ein Sektor-Abbild bleibt verschlüsselt; ob makemkvcon es als `iso:` ohne
Laufwerk öffnet, hängt an MakeMKVs Schlüsseldaten. Bei DVDs (CSS) sollte
es gehen. Am Gerät messen, bevor es jemand im Ernstfall braucht.
**A4 · 4K wird standardmäßig komprimiert** — mit dem 8-Bit-Preset
„H.265 … 2160p 4K" bzw. auf CPU mit „H.265 MKV 1080p30" (`presets.ts:23-49`,
`preset-empfehlung.ts:321-335`). HDR-Metadaten und 10 Bit gehen dabei
verloren, der Encode dauert Stunden. Das Docker-Rippy hatte „4K
verlustfrei" als Regel. Entscheid nötig: Standard „keine" für UHD oder
ein 10-Bit-Preset.
**A5 · Toter Schlüssel `transcodePreset`** in `presets.ts:47-48` — seit
5.5.0 nicht mehr in `PIPELINE_EINSTELLUNGEN`, kann nie greifen.
**A6 · Titel-Lesen: 300 s fest verdrahtet**, kein Regler, Meldung nennt
die Disc „beschädigt" (`erkennung.ts:354-356`) — siehe Kandidat 2.
**A7 · Der Klick-Beweis und die 450 Tests sind gut, aber blind für genau
die Funde oben:** kein Test mit Bestandsdateien im Season-Ordner, keiner
für mehrfaches `runde()`, keiner mit einem Key mit `@`, keiner für den
Rip-Start ohne Ablage, keiner für den Kern-Neustart.
**A8 · Sicherheit/Härtung ist sonst gut:** contextIsolation + sandbox im
Fenster, CSP im Bau, keine Shell-Aufrufe mit Nutzerdaten, PowerShell-
Pfad wird korrekt gequotet, Update nur über HTTPS.
---
## 4. Vorschläge zur Verbesserung — in dieser Reihenfolge
1. **F1 sofort** (eine Zeile plus Test, plus rote Ampel) — vor dem 30.09.
ist das der einzige Fund, der beide PCs betrifft.
2. **F2 + F4 + F6** — die drei „stillen" Fehler; jeder ist klein, alle
drei kosten Vertrauen („tut nichts, sagt nichts").
3. **F3** — Serien mit mehr als einer Disc gehen sonst kaputt; Test mit
vorhandenen Dateien im Ordner dazu.
4. **F8 + F9** — Aufräumen, das nicht zu viel und nicht zu wenig löscht.
5. **Kandidat 2** — Titel-Lesen-Grenze auf 1015 min, Meldung ehrlich
(„die Disc braucht länger — läuft weiter / abbrechen"), Grenze in den
Einstellungen.
6. **F7** — Fortschritt von Vorgangs-Stand trennen; spürbar auf NAS.
7. **F14** — Originaltitel + Akzente: schlägt sich direkt in der
Trefferquote der Automatik nieder.
8. **F10/F11/F12/F13** — sichtbare Kleinigkeiten, je ein halber Nachmittag.
9. **F15/F17** — zwei Rückfragen, die Daten retten.
10. **A4** — dein Entscheid zu 4K.
---
## 5. Was gemessen wurde (nachvollziehbar)
* Typprüfung und Tests: `npm run typecheck`, `npx vitest run` — grün
(450 bestanden, 12 übersprungen).
* Sonden gegen den echten Code (Vitest, außerhalb des Repos):
S1 Akzente/Originaltitel · S2 Episoden-Umbenennung mit Bestand ·
S3 Wache-Takt-Ketten (9 statt ~5 Runden) · S4 Typ-Zuordnung ·
S5 UTC-Anzeige · S6 Labels der drei Filme · S7 99-Titel-Muster ·
S8 `halbeDateienEntfernen` · S9 Beta-Key von der echten Forum-Seite ·
S10 Rip-Start mit unerreichbarer Ablage.
* Electron 44: utilityProcess überlebt unbehandelte Promise-Ablehnung
(zwei Läufe, mit und ohne Horcher).
* Forum-Seite t=1053 heute geladen: Key mit `@`, „valid until end of
September 2026".
* Echte `rippy.db` dieses PCs über `\\localhost\C$`: Schema 4,
`makemkvAppKey` 68 Zeichen mit `@`, `ablage E:\Rippy`, `automatik aus`,
Jellyfin, TMDb- und OMDb-Schlüssel gesetzt, keine Vorgänge (Verlauf
leer), Bibliothek leer.
* Protokolle dieses PCs (02.05.09.): Rippy 5.5.0 → 5.6.0 → 5.6.1,
Kizuna erkannt (95 %), Titel-Lauf 2292 s, Laufwerk G am 02.09. mit
„2 Controllerfehler, 112 fehlerhafte Blöcke" (siehe F11 — ob das dein
BU40N war oder eine Platte, weiß der Bericht nicht).
* `makemkvcon64 -r --noscan info disc:9999` heute: nur 5042/5010 — ohne
Laufwerk keine Lizenzauskunft (F5).
Nichts davon hat etwas am Repo, an deinen Einstellungen oder am Register
verändert; die Sonden liegen im Sitzungs-Scratchpad.