From 512b38cceda9c2ffcd414a905f1a9a23e32cbf40 Mon Sep 17 00:00:00 2001 From: Hitonabi Date: Thu, 3 Sep 2026 19:19:11 +0200 Subject: [PATCH] =?UTF-8?q?docs:=20SAVEPOINT=20=E2=80=94=205.6.0=20gebaut?= =?UTF-8?q?=20und=20lokal=20installiert,=20NICHT=20ver=C3=B6ffentlicht;=20?= =?UTF-8?q?=C3=9Cbergabe?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Prüfsumme, Klick-Beweis (33 Schritte), Tests (446), die acht Punkte von 5.6.0 (inkl. Vorgangs-Leiste), was am Gerät noch zu messen ist, bekannte Schwächen. Co-Authored-By: Claude Fable 5.1 --- SAVEPOINT.md | 146 ++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 145 insertions(+), 1 deletion(-) diff --git a/SAVEPOINT.md b/SAVEPOINT.md index 5927682..20259ff 100644 --- a/SAVEPOINT.md +++ b/SAVEPOINT.md @@ -1,6 +1,150 @@ # SAVEPOINT — Rippy -## ÜBERGABE an die nächste Session (02.09.2026 abends — 5.5.0 gebaut, lokal installiert und im Tag `aktuell` VERÖFFENTLICHT) +## ÜBERGABE an die nächste Session (03.09.2026 abends — 5.6.0 gebaut und lokal installiert, NICHT veröffentlicht) + +### Wo die nächste Session startet + +* **Arbeitsort:** `F:\Coding Stuff\rippy`, Branch `worktree-windows-electron` + (Spitze siehe `git log`). v5-Code in `rippy-windows/`; `main` ist reines + Docker-Rippy. +* **Bau:** wie in BAUEN.md — `npm install` + `node node_modules/electron/install.js`, + Playwright mit `PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1`, `vendor/` aus + `%LOCALAPPDATA%\Rippy\tools`. +* **Die drei Läufe:** `npm test` (446 Tests in 44 Dateien), + `npm run smoke` (Gerüst), `npm run klick` (33 Klick-Schritte, Bilder + `beweise/klick/*.png`, darunter `07-hell-modus.png` und `02-dialog-vorwahl.png`). + Alle drei in dieser Session grün. +* **Release veröffentlichen — NUR nach dem Wort des Commanders:** die + Dateien im Gitea-Tag `aktuell` ERSETZEN (`RippySetup-5.6.0.exe`, + `.blockmap`, `latest.yml`; `w0.yml` bleibt liegen). Dateien liegen in + `rippy-windows/dist-setup/` (Kopie) und `rippy-windows/dist-setup-560/` + (Original). Weg wie bei 5.5.0 (siehe unten „Veröffentlicht"): Token + `F:\Coding Stuff\Gittea Token\rippy.txt` über das PowerShell-Werkzeug + lesen (nie ausgeben), LAN-Adresse + `http://192.168.178.153:3000/api/v1/repos/Hitonabi/rippy/releases/1`, + ERST Setup und Blockmap hochladen, DANN `latest.yml` löschen (204) und + neu hochladen (201), Release-Name/Notizen PATCHen, anonym über + `https://git.tobisniceshomelab.ddnsfree.com/Hitonabi/rippy/releases/download/aktuell/` + gegenmessen. Das PowerShell-Werkzeug blockt Befehle mit `Remove-Item` — + Skript ohne schreiben. **Im Kanal liegt 5.5.0.** + +### Stand + +**5.6.0 ist gebaut, am ausgepackten Paket bewiesen und auf DIESEM PC +installiert (03.09.2026 19:17, Installer-Exit 0, Rippy lief dabei nicht), NICHT im Kanal.** Der Commander testet erst. + +* Setup: `RippySetup-5.6.0.exe`, **131 566 582 Bytes**, SHA-256 + `4392CA5D36E165491085810D4181B22594BB29D62334ED1CDD0D2171264DA1FD` (Bau in `dist-setup-560/`). +* Paket-Smoke: `SMOKE: OK — fenster=geladen kern=pid:15172,node:24.18.1 datenbank=ok leine=gesetzt pong=ok version=5.6.0`. +* **446 Tests** in 44 Dateien (5.5.0: 413), drei + Typprüfungen und Bau grün. +* Klick-Beweis: 33 Schritte grün, Ausgang 0 — neu gegenüber 5.5.0: + beide Titel auf Hauptfilm → keine Vorwahl; Titel 1 auf Extra → „BEIM + ABSPIELEN AN" erscheint, `deu` gewählt; zwei „anderer Film …"-Knöpfe, + Suchfeld öffnet; Kompressions-Karte zeigt „noch … s" (ETA aus der + nachgebauten HandBrake-Zeile), die Kachel zeigt KEINEN vollen Block mehr, + sondern „Kompression fertig — das Ergebnis steht im Verlauf"; Hell-Modus + über Einstellungen → Allgemein (`html[data-design=hell]`, Bild), zurück + auf Dunkel; Vorgangs-Leiste in der Kachel (TITEL LESEN ✓, RIPPEN aktiv, + KOMPRIMIEREN/ABLEGEN offen, keine „PHASE x/4"-Texte) und in der + Kompressions-Karte (KOMPRIMIEREN aktiv). +* Commits dieser Session: `f5dab5d` (Kern, Fenster, Tests, Klick-Beweis, Aenderungsnotizen, Version 5.6.0 — 59 Dateien) und dieser SAVEPOINT. + +### Was 5.6.0 enthält — die sechs Punkte des Commanders vom 03.09.2026 + +Seine Worte: „Bei Kompression ETA anzeigen / Wenn ein Job abgeschlossen +wird, wird Kompression beim Hero-Header und im Kompression angezeigt — nur +nötig bei Kompression, oder? / Beim Scrollen in den Einstellungen muss die +Bar oben sinnvoll mitscrollen / Untertitel müssen separat auswählbar sein +(das hatten wir besprochen) / White Mode / Verhalten, wenn eine Disc mehr +als einen Film hat, besprechen." Seine Entscheide in den Rückfragen: **nur +in der Kompressions-Karte; Untertitel-Vorwahl je Inhalt — „NUR für Extras +und IMMER OPTIONAL", weiche Spur, nie eingebrannt; je Titel eigener Film +im Dialog; Roh-Ordner UND Dateien tragen den Filmnamen.** + +1. **Restzeit (ETA):** `kern/komprimieren/handbrake.ts etaAusZeile` liest + HandBrakes eigene Klammer — Formatstring aus dem Binary (1.11.2): + `Encoding: task %d of %d, %.2f %% (%.2f fps, avg %.2f fps, ETA %02dh%02dm%02ds)`. + `KompressionStand.restS` → Kompressions-Karte „noch ~12 min" + (`bausteine.restText`). In den ersten Sekunden ohne Klammer: „Restzeit + wird berechnet …". +2. **Kachel-Kurzzeile:** `LaufwerkKachel` zeigt nach dem Rip nur noch eine + Zeile (läuft / Platz n / fertig → Verlauf / Fehler bleibt sichtbar, R4). +3. **Kopfzeile bleibt stehen:** `App.tsx` header `sticky top-0 z-40` mit + `bg-buehne/85 backdrop-blur-md`; die Sektionswahl der Einstellungen + sitzt darunter (`lg:top-[76px]`). +4. **Untertitel-Vorwahl je Extra:** `RipAuftragTitel.untertitelVorwahl` + (`string` = diese Sprache vorgewählt, `null` = keine, fehlend = Rippys + Regel) → `RohDatei.untertitelVorwahl` → `auftrag.ts sprachwahl` stellt + sie nach vorn und setzt `untertitelStandard` (HandBrake + `--subtitle-default=1`, weiche Spur). Dialog: Select „BEIM ABSPIELEN AN" + nur bei Rolle Extra, Vorgabe „Rippys Regel (deu)". +5. **Mehrere Filme je Disc:** `RipAuftragTitel.film` (MetaVorschlag) aus dem + Dialog („anderer Film …" mit TMDb-Suche über `metadaten-suchen`); + `kern/ablauf/filme.ts filmGruppen` teilt am Rip-Ende: Titel eines + anderen Films ziehen per `renameSync` in einen eigenen Roh-Ordner + (`rohOrdnerName`), bekommen eigenen Vorgang (`-2`, `-3` …) und + eigenen Kompressions-Auftrag mit voller Zuordnung + (`erkennung.zuordnungAus` → TMDb-Details; Notnagel + `zuordnungAusVorschlag`). Behält KEIN Titel die Disc-Zuordnung, wird die + erste Gruppe zum Hauptvorgang. Die Vorschau im Dialog zeigt je Film + seine Zeile. +6. **Ordner und Dateien mit Filmnamen:** Roh-Ordner + `roh\Akira (1988)` bzw. `roh\Spartacus - Staffel 1 Disc 2`, bei + Wiederholung „(2)"; ohne Zuordnung weiter der Zeitstempel. Dateien + (`kern/ablage/dateinamen.ts`): `Akira (1988).mkv`, zwei Fassungen + `… - Fassung 1.mkv`, Extras `… - Extra 01.mkv` in `extras\`; Folgen + behalten den Namen bis zur Episoden-Zuordnung. Der Vorgangs-Name + (Zeitstempel) bleibt die Kennung — `Vorgang.rohOrdner` trägt den Pfad. +7. **Hell-Modus:** Einstellung `design` (dunkel / hell / system); + `App.tsx` setzt `data-design` auf ``, `stil.css` überschreibt die + Farb-Tokens (`:root[data-design="hell"]`: warmes Papier, dunkleres Gold, + Tinte statt Weiß). Neuer Token `--color-tinte` ersetzt alle + `white/`-Alpha-Klassen (`bg-tinte/…`, `border-tinte/…`). +8. **Vorgangs-Leiste** (Commander mitten in der Session: „Phase 1–4 plus + Komprimierung — zu einem machen, der Phasen-Balken gefällt mir"; sein + Ja zu Variante A): `gemeinsam/vorgangsleiste.ts` (pur: Stationen + Titel lesen → [Rettungs-Abbild] → Rippen → Komprimieren → Ablegen, + `stationsZustand`, `leisteAusRip/-Vorgang/-Kompression`) und + `fenster/uebersicht/VorgangsLeiste.tsx` (Segment-Balken in der aktiven + Station, kompakt als Punkte). Kachel: Details der Laufwerks-Stationen, + nach dem Rip nur der Stand; Kompressions-Karte: Stationen 3–4 mit + Restzeit; Verlauf und Warteschlange: Punkte. Die Texte „PHASE x/4" + sind weg (`PHASEN_MONO`). + +### ⚠ Am Gerät noch zu messen (nichts davon war in dieser Session möglich) + +* **Zwei Filme auf einer echten Disc** (Double Feature): Roh-Umzug per + `renameSync` im Arbeitsordner, zwei Vorgänge, zwei Zielordner mit Poster + und NFO — Unit-Tests decken die Gruppen-Logik (`filme.test.ts`), nicht + den Lauf mit MakeMKV. +* **Untertitel-Vorwahl im Spieler:** Ob Jellyfin/VLC die als Default + markierte Spur bei einem Extra wirklich einblendet — HandBrake-Flag ist + am 01.09. gemessen (setzt default UND forced), das Abspielen nicht. +* **Restzeit an einem echten Encode** (die Klammer erscheint nach den + ersten Sekunden; im Klick-Beweis kommt sie vom Nachbau). +* **Hell-Modus mit Poster-Kulisse und echten Postern.** +* Weiter offen aus 5.5.0: Rettungs-Abbild an Spartacus Disc 2, Automatik an + echter Disc, Benachrichtigung live, Datenbank-Befund vom 01.09. (siehe + 5.5.0-Übergabe unten). + +### Bekannte Schwächen, bewusst in Kauf genommen + +* Ein Roh-Ordner mit Filmnamen ist auch bei „Neu komprimieren" derselbe — + die Regel „ein Ordner je Vorgang" gilt weiter, nur der Name ist lesbar. +* Der zweite Film einer Disc bekommt Staffel/Folge nie (nur Filme, keine + Serien) und keinen Fingerprint (die Disc als Ganzes ist beim Hauptvorgang + gemerkt). +* Ohne Arbeitsordner schreibt HandBrake weiterhin direkt ins Ziel — bei + „Neu komprimieren" in denselben Ordner überschreibt der neue Encode die + alte Datei gleichen Namens erst am Ende des Laufs (Umzug), aber ohne + Arbeitsordner während des Laufs. Wer wiederholt, sollte den Arbeitsordner + gesetzt haben (5.5.0-Empfehlung). +* Das Fenster startet mit dunklem Hintergrund (`backgroundColor` in + `haupt/fenster.ts`) und schaltet erst mit den Einstellungen auf Hell — + ein kurzes Aufblitzen beim Start. + +## Übergabe vom 02.09.2026 abends (5.5.0 — veröffentlicht im Tag `aktuell`; überholt durch 5.6.0) ### Wo die nächste Session startet