Ampel / ampel (push) Successful in 1m49s
Commander: "Er liest es korrekt ein, ich bekomme auch die auswahl aber kurz danach kommt dieser fehler" — "makemkvcon info: keine Antwort nach 300 s", MINUTEN nach der fertigen Titelliste. Mit nur einem Lauf ist das unmoeglich: Der Timeout wird bei 'close' geloescht. Es waren also zwei Laeufe unterwegs, und der aeltere meldete verspaetet seinen Abbruch — auf die laengst gelieferte Liste drauf. Behoben, je Laufwerk: * Ein neuer Lauf LOEST den alten AB: AbortController im Kern, titelInfoLesen nimmt jetzt ein AbortSignal, killt das Kind und lehnt mit der Marke ABGELOEST ab. Das Laufwerk ist sofort frei, und es laufen nie zwei makemkvcon auf derselben Disc. * Nur die NEUESTE Laufnummer darf antworten (titelLaufNummern) — eine verspaetete Antwort wird verworfen, nicht angezeigt. * Ein abgeloester Lauf SCHWEIGT: abgeloest ist Absicht, kein Fehlschlag. * Laeuft es wirklich in den Timeout, steht jetzt ein Satz statt einer Fehlermeldung: Bei einer beschaedigten Disc kann das Lesen ueber fuenf Minuten brauchen; Rippy beendet den Versuch und gibt das Laufwerk frei. Am lebenden Objekt bestaetigt (SPARTACUS_GOTA_D1, Commander-Screenshot): "Serie: 2 Folgen erwartet, 2 gefunden - passt." | Titel 0 52:47 min 16,28 GB 7 Kap. | Titel 1 54:09 min 16,67 GB 7 Kap. | beide Rolle Folge | 2 von 2 gewaehlt, zusammen 32,95 GB — und KEIN Timeout hinterher. Die Laengen liegen 2,5 Prozent auseinander, also weit innerhalb von AEHNLICH (15 Prozent) — deshalb "passt" ohne Unsicherheits-Warnung. 261 Tests gruen, Typpruefung sauber. Version 5.3.2. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
43 lines
1.4 KiB
JSON
43 lines
1.4 KiB
JSON
{
|
|
"name": "rippy",
|
|
"productName": "Rippy",
|
|
"version": "5.3.2",
|
|
"description": "Rippy v5 — Disc-Ripping als eigenständiges Windows-Programm (KONZEPT-WINDOWS.md)",
|
|
"main": "out/haupt/index.js",
|
|
"author": "KrBrZ",
|
|
"license": "UNLICENSED",
|
|
"private": true,
|
|
"scripts": {
|
|
"dev": "electron-vite dev",
|
|
"typecheck": "tsc --noEmit -p tsconfig.node.json && tsc --noEmit -p tsconfig.bruecke.json && tsc --noEmit -p tsconfig.web.json",
|
|
"build": "npm run typecheck && electron-vite build",
|
|
"test": "vitest run",
|
|
"smoke": "electron-vite build && electron . --smoke",
|
|
"paket": "npm run build && electron-builder --win --config electron-builder.yml",
|
|
"werkzeug:electron": "node node_modules/electron/install.js"
|
|
},
|
|
"dependencies": {
|
|
"electron-updater": "^6.8.9",
|
|
"koffi": "^3.1.6"
|
|
},
|
|
"devDependencies": {
|
|
"@fontsource-variable/bricolage-grotesque": "^5.3.0",
|
|
"@fontsource/instrument-sans": "^5.3.0",
|
|
"@fontsource/jetbrains-mono": "^5.3.0",
|
|
"@tailwindcss/vite": "^4.3.3",
|
|
"@types/node": "^24.0.0",
|
|
"@types/react": "^19.2.18",
|
|
"@types/react-dom": "^19.2.5",
|
|
"@vitejs/plugin-react": "^5.2.0",
|
|
"electron": "44.0.0",
|
|
"electron-builder": "^26.15.3",
|
|
"electron-vite": "^5.0.0",
|
|
"react": "^19.2.8",
|
|
"react-dom": "^19.2.8",
|
|
"tailwindcss": "^4.3.3",
|
|
"typescript": "5.9.3",
|
|
"vite": "^7.3.6",
|
|
"vitest": "^4.1.11"
|
|
}
|
|
}
|