Ampel gruen fuer 38a3a87, Paket-Smoke gruen, Setup liegt in dist-setup.
Offen bleibt allein der Release-Upload: der gespeicherte Gitea-Zugang ist
ein Passwort, kein API-Token (HTTP 401).
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
38a3a87f70
commit
4f943e2c4f
+116
@@ -1,5 +1,121 @@
|
||||
# SAVEPOINT — Rippy
|
||||
|
||||
## Disc-Erkennung repariert — Version 5.1.1 (01.09.2026)
|
||||
|
||||
> Der Commander legte **Disc 2 von „Spartacus: Gods of the Arena"** ein,
|
||||
> Rippy meldete den **Film „Spartacus" von 1960**. Er schlug vor, Discs
|
||||
> künftig über ihre EAN/Barcode-Nummer zu erkennen. Die Messung zeigte:
|
||||
> Das braucht es nicht — **die Disc trug die richtige Antwort die ganze
|
||||
> Zeit selbst mit sich, Rippy las nur eine Zeile davon.**
|
||||
|
||||
### Warum der Barcode nicht die Antwort war
|
||||
|
||||
Der Barcode steht auf der HÜLLE, nicht auf der Scheibe. Ein Laufwerk
|
||||
liest die Scheibe. Für DVD und Blu-ray gibt es keinen Weg an die EAN.
|
||||
(Ausnahme, notiert und nicht gebaut: Audio-CDs tragen im Subchannel eine
|
||||
Media Catalog Number — das IST der UPC/EAN. Als Auffangnetz für
|
||||
unbekannte MusicBrainz-Kennungen später denkbar; TMDb und OMDb können
|
||||
ohnehin keine Barcode-Suche, dafür bräuchte es eine Produktdatenbank als
|
||||
Zwischenstufe mit fraglicher Abdeckung deutscher Editionen.)
|
||||
|
||||
### Was tatsächlich kaputt war (Laufwerk G:, `SPARTACUS_GOTA_D2`, UDF, 33 759 100 928 B)
|
||||
|
||||
Rippy las korrekt `Spartacus: Gods Of The Arena - Disc 2` und baute
|
||||
daraus Suchvarianten — der Doppelpunkt-Vorspann stand auf **Platz 2**:
|
||||
|
||||
```
|
||||
[0] Spartacus: Gods Of The Arena - Disc 2
|
||||
[1] Spartacus <- hier war Schluss
|
||||
...
|
||||
[5] Spartacus: Gods Of The Arena <- der richtige, nie gefragt
|
||||
```
|
||||
|
||||
TMDb hat einen Film, der wörtlich „Spartacus" heißt → wörtlicher
|
||||
Treffer → **0,95** → fertig. Der Fix vom 30.08. (`Reihenfolge JE
|
||||
KANDIDAT`) griff nicht, weil er die Kandidaten-LISTE nicht anfasste; der
|
||||
damalige Test benutzte einen geschönten Titel (ohne Doppelpunkt, ohne
|
||||
`- Disc 2`) und lief deshalb grün.
|
||||
|
||||
### Die vier Ursachen (`38a3a87`, Ampel GRÜN, 225 Tests)
|
||||
|
||||
1. **Die Sicherheit maß die ART des Treffers, nie die QUALITÄT der
|
||||
Frage.** Neu: `abdeckung()` + `MINDEST_ABDECKUNG` (0,5) — wer mehr
|
||||
als die Hälfte des Titels wegwerfen musste, bekommt höchstens einen
|
||||
Vorschlag (0,60) und das UI fragt nach. Maßstab ist der Titel OHNE
|
||||
Verpackungs-Zusatz.
|
||||
2. **Verpackungs-Zusätze galten als Wortmüll.** Neu:
|
||||
`discZusatzAbtrennen()` trennt `- Disc 2` / `_D2` / `S1` ab UND merkt
|
||||
sie. Vier Fallen sind mit Tests abgesichert: `Rocky 2` (nackte Zahl),
|
||||
`Kill Bill Teil 2` (Teil/Part sind Titel-Wörter), `Ocean's 11`
|
||||
(Apostroph-Wortgrenze — die Ein-Buchstaben-Formen `d`/`s` verlangen
|
||||
deshalb einen Trenner davor), `Pulp Fiction`.
|
||||
3. **Der Titelvergleich war zeichengenau.** Ein Volume-Label KANN keinen
|
||||
Doppelpunkt tragen, TMDb schreibt ihn — der exakt richtige Treffer
|
||||
fiel an einem Satzzeichen durch. Neu: `gleichBedeutend()`. Vergleicht
|
||||
die Wort-FOLGE, nicht die Wort-MENGE (sonst wäre `New York, New York`
|
||||
gleich `New York`).
|
||||
4. **Rippy öffnete das Inhaltsverzeichnis der Disc und las nur die erste
|
||||
Zeile.** Neu: `inhaltAusBdmt()` liest auch `<di:titleName>`.
|
||||
`EP 1`/`EP 2` beweisen die Serie, `DUB GER 1`/`101 LOGO`/`104 GER FSK`
|
||||
nicht (`istFolgenName` ist bewusst eng). Ab zwei Folgen ist „Serie"
|
||||
BEWIESEN — dann sind die Film-Zweige der Kaskade AUS.
|
||||
|
||||
Disc-Nummer, Staffel und Folgenzahl stehen jetzt auch im Fenster
|
||||
(Kachel neben der Erkennung) und überleben eine eigene Titelwahl.
|
||||
|
||||
### Der Beweis an der echten Disc
|
||||
|
||||
Neu: `test/messung.disc-erkennung.test.ts` (nur Windows, nur auf
|
||||
Verlangen — `RIPPY_MESSUNG_DISC=G npx vitest run …`):
|
||||
|
||||
```
|
||||
Titel "Spartacus: Gods Of The Arena - Disc 2" (Quelle: bdmt)
|
||||
Disc 2 | Staffel — | Folgen 2 | Serie bewiesen: true
|
||||
Inhalt: EP 1 | EP 2 | MM ITA | ILSM | DUB GER 1 | DUB GER 2 | DUB FRE 1
|
||||
| DUB FRE 2 | DUB ITA | 101 LOGO | 102 DUTCH BREIN
|
||||
| 103 DUTCH AGE | 104 GER FSK | 105 WARNINGS
|
||||
Varianten: "…- Disc 2" -> "…Arena" -> "Spartacus Gods…" -> … -> "Spartacus"
|
||||
```
|
||||
|
||||
Deckt sich mit der Disc-Struktur: genau zwei große Ströme (`00047.m2ts`
|
||||
15,76 GB, `00048.m2ts` 14,89 GB), alles andere unter 200 MB.
|
||||
|
||||
**Geänderter Bestandstest:** Der alte Spartacus-Test erwartete 0,80. Er
|
||||
erwartet jetzt 0,90 — durch den satzzeichen-toleranten Vergleich ist es
|
||||
ein WÖRTLICHER Serientreffer. Die Absicht bleibt, die Prüfung wird
|
||||
strenger.
|
||||
|
||||
### Das Setup 5.1.1
|
||||
|
||||
* `rippy-windows/dist-setup/RippySetup-5.1.1.exe`
|
||||
* Größe **131 526 527 Bytes**
|
||||
* SHA-256 `04CB1D302616FB67DE217AE26D50B567350177CAE9801C3FDC6FE9EA04C26F88`
|
||||
* sha512 (in `latest.yml`) `GiUmrSDr/c/fTai0pJhZEr5dZuy1pUyApcFnGO1x9Kv1aKBLFXTZch8VU7rSp1wvOhZh687DhOklE4v5MIo/Pg==`
|
||||
* Paket-Smoke GRÜN: `fenster=geladen kern=pid,node:24.18.1 datenbank=ok
|
||||
leine=gesetzt pong=ok version=5.1.1`
|
||||
* `latest.yml` und `w0.yml` liegen daneben, beide auf 5.1.1
|
||||
|
||||
### ⚠ OFFEN: Das Release ist NOCH NICHT hochgeladen
|
||||
|
||||
Der Upload braucht Schreibrechte an der Gitea-API. Der gespeicherte
|
||||
Zugang (`git credential fill`, Host
|
||||
`git.tobisniceshomelab.ddnsfree.com`) ist ein **13-stelliges Passwort,
|
||||
kein API-Token** — Gitea antwortet darauf mit HTTP 401. Es fehlt ein
|
||||
Token aus *Einstellungen → Anwendungen → Zugangstoken* mit Recht
|
||||
`write:repository`.
|
||||
|
||||
Release `aktuell` (ID 1, Ziel `worktree-windows-electron`) enthält noch
|
||||
5.1.0. `latest.yml` wurde dort bereits **2× abgerufen** — die
|
||||
installierte 5.1.0 fragt also nachweislich nach Updates, der Kanal lebt.
|
||||
|
||||
**Zu tun:** `RippySetup-5.1.1.exe` + `.blockmap` hinzufügen, `latest.yml`
|
||||
und `w0.yml` ERSETZEN (Namenskollision → erst löschen). Die 5.1.0-EXE
|
||||
darf liegen bleiben, sie ist die Rückfallebene. Danach ist es der erste
|
||||
echte Selbst-Update-Beweis (§ 6.8) — und misst zugleich, ob Gitea 1.27
|
||||
das `releases/latest/download`-Muster bedient (§ 3.6 ⚠).
|
||||
|
||||
---
|
||||
|
||||
## ÜBERGABE an die nächste Session (31.08.2026, Sessionende)
|
||||
|
||||
> Diese Session ist abgeschlossen und ihr Arbeitsordner
|
||||
|
||||
Reference in New Issue
Block a user