diff --git a/SAVEPOINT.md b/SAVEPOINT.md index 3fba94c..b8c50c3 100644 --- a/SAVEPOINT.md +++ b/SAVEPOINT.md @@ -1,6 +1,158 @@ # SAVEPOINT — Rippy -## ÜBERGABE an die nächste Session (03.09.2026 spät — 5.6.1 gebaut und lokal installiert, NICHT veröffentlicht: Untertitel-Spuren wieder erkannt) +## ÜBERGABE an die nächste Session (12.09.2026 spät — 5.7.0 gebaut, Paket-Smoke grün, NICHT veröffentlicht: die Durchsicht abgearbeitet, Spuren einzeln, Ton verlustfrei) + +### Wo die nächste Session startet + +* **Arbeitsort:** `F:\Coding Stuff\rippy`, Branch `worktree-windows-electron` + (Spitze `9d16e82` plus dieser SAVEPOINT). v5-Code in `rippy-windows/`. +* **Die drei Läufe:** `npm test` (508 Tests in 51 Dateien, 13 übersprungen), + `npm run smoke`, `npm run klick` (34 Klick-Schritte, Bilder + `beweise/klick/*.png` — `02-dialog-vorwahl.png` zeigt die Spur-Haken). + Alle drei in dieser Session grün; dazu die Messung + `RIPPY_MESSUNG=1 npx vitest run test/messung.spuren.test.ts` am + mitgelieferten HandBrake (braucht ffmpeg im PATH). +* **Release veröffentlichen — NUR nach dem Wort des Commanders.** Weg wie + bei 5.6.0 (Übergabe vom 03.09. unten): Dateien im Gitea-Tag `aktuell` + ERSETZEN (`RippySetup-5.7.0.exe`, `.blockmap`, `latest.yml`), ERST Setup + und Blockmap, DANN `latest.yml` löschen (204) und neu hochladen (201), + Release PATCHen, anonym gegenmessen. Dateien in `rippy-windows/dist-setup-570/` + (Original) und `rippy-windows/dist-setup/` (Kopie). **Im Kanal liegt + weiterhin 5.6.0** — 5.6.1 wurde nie hochgeladen und ist durch 5.7.0 + überholt. + +### Stand + +**5.7.0 ist gebaut und am ausgepackten Paket bewiesen.** + +* Setup: `RippySetup-5.7.0.exe`, **131 575 882 Bytes**, SHA-256 + `006B761EC2552637A4D1294C066B62B594A3B8FF08BB658115FFCD429D4AC185` + (Blockmap 137 533 Bytes, `latest.yml` 13 433 Bytes mit den 5.7.0-Notizen). +* Paket-Smoke: `SMOKE: OK — fenster=geladen kern=pid:37052,node:24.18.1 datenbank=ok leine=gesetzt pong=ok version=5.7.0`. +* **508 Tests** in 51 Dateien (5.6.1: 450), drei Typprüfungen, Bau und + Klick-Beweis (34 Schritte) grün. +* **Ampel:** Lauf 279 (`d457600`) blieb in `test/pipeline.test.ts` HÄNGEN — + der neue F2-Test nahm unter Linux `/proc/rippy-nicht-da` als tote + Ablage; auf procfs antwortet mkdir mit ENOENT, obwohl `/proc` da ist, + und Nodes `mkdirSync({recursive:true})` pendelt endlos (synchron, kein + Test-Timeout greift). Fix `9d16e82` (Ordner unter einer Datei → ENOTDIR, + sofort) ist gepusht; sein Lauf wartet, bis der hängende Lauf endet + (Gitea-Zeitlimit 3 h, ab 22:14) oder jemand ihn in Gitea abbricht + (Actions → #279 → Abbrechen; per API gibt es kein Cancel in 1.27). + **Lokale Installation und Kanal erst, wenn diese Ampel GRÜN ist** (Regel A). +* LOKAL INSTALLIERT: siehe Nachtrag am Ende dieses Abschnitts — wenn dort + nichts steht, ist 5.6.1 installiert und 5.7.0 wartet in `dist-setup/`. +* Commits dieser Session (alle auf `worktree-windows-electron`): + `6f1add4` Bericht der Durchsicht · `12b9720` F1/F5/F12/F13/A2 Schlüssel · + `8c4456d` F2/F4/F6/F8/F10 kein stilles Scheitern · `904e4b2` F3/F9 + Serien und Zwischenname · `551f1d7` F7 Fortschritt · `783b8e4` F11 + Laufwerks-Gesundheit · `c1ee339` Kleinkram F15–F30/A5 · `3dacd7c` F14 + Erkennung · `ae82d8c` F16 Installer-Rückfrage · `6b6e5c3` Titel lesen + 15 min · `0fc87aa` 4K nach Leistung · `fc2d16c` Disc-Typ aus dem + Dateisystem · `e7e33e9` Spuren einzeln + F31 · `d457600` Version 5.7.0 · + `9d16e82` F2-Test ohne /proc. + +### Was 5.7.0 enthält — die Durchsicht vom 12.09.2026, abgearbeitet + +Der Bericht (`beweise/berichte/2026-09-12-durchsicht.md`, 31 Funde, 8 +Auffälligkeiten, 5 Kandidaten für „Der Patriot / Déjà Vu / Training Day" +auf dem anderen PC) ist komplett umgesetzt — nach den Entscheiden des +Commanders vom selben Abend: + +1. **F1 Beta-Key mit `@`** (wahrscheinlichste Ursache der drei Filme): + `KEY_MUSTER = /T-[^\s<>"'&;]{50,}/`, „end of September 2026" wird + gelesen, ein angenommener Schlüssel bleibt stehen, Ablehnung ROT, + „nicht prüfbar" (grau) ohne Laufwerk. **Vom anderen PC noch zu holen:** + Protokoll und Stand der Schlüssel-Karte NACH dem Update — dann ist der + Kandidat bestätigt oder verworfen. +2. **Kandidat 2 → Titel lesen 15 Minuten + Regler** (Einstellungen → + Allgemein, 5–60), Zwischenstand je Minute im Dialog, „Abbrechen" + beendet den Lauf im Kern, Meldung nennt Kopierschutz/Playlisten. +3. **Jede Spur einzeln anhaken** („Jede Spur einzeln anhaken + (Recommended)"): Dialog mit Ton- und Untertitel-Zeilen je Titel + (`gemeinsam/spuren.ts`, `SpurZeilen` im Dialog), Vorwahl je Extra als + Spur, Parser liest SINFO 2/22, abgeleitete Spuren (0x800) — DTS-Kerne + versteckt, „nur erzwungene" sichtbar; Ablage findet die Spuren im + HandBrake-Scan der Roh-Datei wieder (`spurenZuordnen`, gestuft) und + gibt `--audio n,n --subtitle n,n --subtitle-default=1`; MakeMKV-Regel + jetzt `-sel:all,+sel:all,-sel:havecore,=100:all` (Stereo-Doppel und + Kommentare bleiben), alte Rippy-Regel wird ersetzt, fremde bleibt. +4. **4K nach der Leistung** („Ja, genau so"): GPU mit 4K-Preset → + komprimieren (8 Bit), nur CPU → verlustfrei; AV1 10 Bit als eigene Wahl. +5. **F10 Disc-Typ aus dem Dateisystem**: `INDX0300` = UHD (am Akira-Abbild + gemessen), `0100/0200` = Blu-ray, `VIDEO_TS` = DVD. +6. **F16 Installer aus dem Archiv nur nach Rückfrage** („Archiv nur nach + Rückfrage"): Frage in der MakeMKV-Karte, Größe + SHA-256 im Bericht. +7. **F31 (NEU, beim Bau gemessen): Ton war seit 5.0 nie verlustfrei.** + `--aencoder copy` ohne `--audio-copy-mask` → HandBrakeCLI 1.11.2 kopiert + nur AAC, rechnet AC3/DTS/TrueHD um. Jetzt Maske + `aac,ac3,eac3,dtshd,dts,mp3,truehd,flac` auf beiden Wegen. **Dem + Commander sagen:** Filme, deren Roh-Dateien nach der Kompression + gelöscht wurden, tragen AAC — bei wichtigem HD-Ton neu rippen. +8. Alle übrigen Funde F2–F30 und A5 (siehe Commit-Liste oben; jeder mit + Test). + +### Messungen dieser Session (Regel D) + +* HandBrakeCLI 1.11.2 (vendor), Quelle per ffmpeg (jpn 5.1 / deu 2.0 / + deu 2.0 „Kommentar" AC3, deu/eng SRT), Preset „H.265 MKV 1080p30": + `--audio 1,3` → jpn + deu-Kommentar; `--subtitle 2,1 --subtitle-default=1` + → eng (default) vor deu; `--audio none --subtitle none` → nur Video; + ohne `--audio-copy-mask` Passthru-Zeile „allowed codecs are AAC" und + Ausgabe AAC; mit Maske „AAC, AC3, E-AC3, TrueHD, DTS, DTS-HD, MP3, FLAC" + und Ausgabe AC3. Presets-Export: alle drei Produktions-Presets tragen die + volle CopyMask — die CLI verengt sie trotzdem. +* HandBrake-Scan-JSON: `AudioList[].CodecName` („dtshd", „dca", „ac3"), + `ChannelCount`, `ChannelLayout`; `SubtitleList[].Source` (Zahl), + `SourceName` („UTF-8", „PGS"), `Format`. +* HandBrake 4K (RX 9070 XT): `vce_h265` 8 Bit läuft, `vce_h265_10bit` + Segfault (Profil auto und main10), `vce_av1_10bit` läuft. +* `BDMV/index.bdmv` am Akira-UHD-Abbild: `INDX0300`. +* `QueryDosDeviceW`: C: → `\Device\HarddiskVolume7`. +* Electron 44 utilityProcess überlebt unbehandelte Promise-Ablehnung. +* Forum t=1053: Key 68 Zeichen mit `@`, „valid until end of September 2026". +* Echte `rippy.db` über `\\localhost\C$`: Schema 4 — der Datenbank-Befund + vom 01.09. war die MSIX-Schattensicht dieses Terminals (A1). +* Nodes `mkdirSync({recursive:true})` auf procfs: Endlosschleife (Ampel-Lauf 279). + +### ⚠ Am Gerät noch zu messen + +* **Spuren einzeln an einer echten Disc** (Kizuna: DTS-HD MA deu/jpn, + drei PGS deu): Dialog-Zeilen, DTS-Kern unsichtbar, Roh-Datei enthält + die Stereo-Fassung (neue MakeMKV-Regel — beim ersten Start von 5.7.0 + meldet die Werkzeug-Karte „Auswahlregel erneuert"), HandBrake-Ausgabe + mit genau den gewählten Spuren, Ton-Codec in der fertigen Datei DTS-HD + MA statt AAC (F31). +* Gewöhnliche Blu-ray: `index.bdmv` muss `INDX0200` (oder 0100) tragen. +* 4K-Disc am Laufwerk: Typ `uhd`, Preset „H.265 VCN 2160p 4K", Encode + läuft durch (Messung nur am Abbild). +* Titel lesen > 5 min an einer zähen DVD; Abbrechen gibt das Laufwerk frei. +* Rettungs-Abbild an einer AACS-Disc (nie gemessen, siehe 5.5.0). +* Der andere PC: Protokoll + Schlüssel-Karte nach dem Update (Kandidat 1). + +### Offene Fragen an den Commander + +* **4K-Vorgabe:** 8-Bit-HEVC-Hardware (läuft) oder AV1 10 Bit (läuft, + braucht AV1-fähige Abspielgeräte)? Heute: HEVC 8 Bit vorgegeben, AV1 + wählbar. +* **Alte Filme mit AAC-Ton (F31):** neu rippen oder so lassen? + +### Bekannte Schwächen, bewusst in Kauf genommen + +* Die Spur-Zuordnung Roh-Datei ↔ Dialog läuft über Sprache + Codec-Familie + + Kanäle (MakeMKV nummeriert anders als HandBrake); bei zwei identischen + Spuren gleicher Sprache, gleichen Codecs und gleicher Kanalzahl + entscheidet die Reihenfolge. Was nicht gefunden wird, steht als Hinweis. +* Keine gewählte Tonspur → HandBrakes erste Spur (kein stummer Film); der + Dialog sagt es. +* Die Automatik (ohne Dialog) rippt weiter nach Sprachlisten, nicht nach + Spuren. +* 10-Bit-HEVC per VCE stürzt in HandBrake 1.11.2 ab — 4K bleibt 8 Bit, + bis ein neueres HandBrake mitgeliefert wird. +* Der Kanal trägt 5.6.0; wer 5.6.1 lokal hat (dieser PC), bekommt 5.7.0 + über den Installer, nicht über das Update. + +## Übergabe vom 03.09.2026 spät (5.6.1 — gebaut und lokal installiert, nie veröffentlicht; überholt durch 5.7.0) ### Stand