Sucukdeluxe
709a93b405
Auto-Rename Hardening: 9 weitere Bugs aus 10-Agent-Audit gefixt
B) Symlink-Following + Library-Cross-Risk verhindert
- collectFilesByExtensions skippt jetzt Symbolic Links / Junctions
(entry.isSymbolicLink) — der v1.7.107-Korruptions-Vektor kann nicht
mehr ueber Reparse-Points zurueckkehren
- autoRenameExtractedVideoFiles bricht ab wenn extractDir mit
mkvLibraryDir ueberlappt (in beide Richtungen) → keine Cross-
Package-Korruption durch fehlerhafte User-Konfig
- collectMkvFilesToLibrary mit gleichem Schutz fuer sourceDir<->targetDir
C) Long-Path Silent Skip behoben
- buildSafeAutoRenameTargetPath prueft jetzt zusaetzlich Gesamtpfad-
Laenge (247 chars conservative Windows-Limit), nicht nur Datei-
Namen-Laenge. Fallback zu kuerzerem Pfad greift jetzt zuverlaessig
D) Hybrid-Extract Partial-Write Race entschaerft
- Files mit mtime juenger als 2s werden uebersprungen (im naechsten
Scan re-evaluiert). Verhindert Rename auf gerade-noch-gschriebene
MKVs waehrend Hybrid-Extract parallel arbeitet
- Konfigurierbar via fileStabilizeMinAgeMs (Tests: VITEST=true => 0)
E) Retry-Logik fuer transiente Rename-Fehler
- renamePathWithExdevFallback retried jetzt EBUSY/EACCES/EPERM/EEXIST
mit 200/500/1000ms Backoff. Antivirus, Indexer, OneDrive, offene
Player-Locks → automatisch geheilt statt permanent geskippt
F) Subtitle/.nfo Companion-Files werden mit-umbenannt UND mit-verschoben
- Neue Helper renameCompanionFiles + moveCompanionFiles erkennen Subs
(.srt/.ass/.ssa/.sub/.idx/.vtt/.smi) und Metadaten (.nfo) am Basis-
Namen-Match. Auch Sprach-Tags wie .de.srt bleiben erhalten
- Mediaplayer kann Subs nach Library-Move wieder automatisch laden
G) Sample-Token False-Positive entschaerft
- Dateien die sampleTokenRe matchen bekommen Size-Check: nur als Sample
behandelt wenn ≤150 MB. Series mit "Sample" im Titel (z.B.
"Sample.Squad.S01E01.mkv") werden jetzt korrekt umbenannt
- Sample-Subfolder-Detection bleibt unveraendert (eindeutig)
H) UNC + Casing-only Rename: jetzt via renamePathWithExdevFallback
- Casing-Rename benutzt jetzt den gleichen Helper, bekommt automatisch
toWindowsLongPathIfNeeded und Retry-Logik
I) Multi-MKV in selbem Folder: numerischer Suffix statt Skip
- Wenn Ziel existiert: probiert .2, .3, ... bis .99 bevor aufgegeben.
A/B-Parts oder alternate-Audio-Files in selbem Folder werden jetzt
korrekt mit Suffix differenziert statt 2./3. File silent zu droppen
J) Episode-Token Coverage: xX-Format hinzugefuegt
- Neuer SCENE_EPISODE_X_RE erkennt 1x01, 10x100, etc. (aeltere
Scene-Releases). Quality-Tokens wie 1080p werden NICHT falsch
als 1080xX matched (kein zweiter Number-Group)
Tests:
- Symlink-Guard: extractDir==mkvLibraryDir → 0 renamed, File unangetastet
- Companion: .srt/.de.srt/.nfo bei Rename mitbenannt
- Multi-MKV-Collision: 2 Files → suffix .2 statt skip
- Episode-Token: 1x01/10x100 erkannt, 1080p nicht falsch matched
589/589 Tests gruen.
2026-04-22 02:17:11 +02:00
..
2026-03-04 17:31:20 +01:00
2026-03-09 02:47:49 +01:00
2026-04-22 02:17:11 +02:00
2026-03-10 23:47:02 +01:00
2026-03-06 12:09:39 +01:00
2026-03-10 23:47:02 +01:00
2026-03-01 02:00:52 +01:00
2026-04-20 16:52:18 +02:00
2026-03-10 18:20:19 +01:00
2026-04-22 02:17:11 +02:00
2026-03-05 06:24:12 +01:00
2026-03-10 19:34:42 +01:00
2026-02-28 14:12:16 +01:00
2026-03-28 16:27:21 +01:00
2026-03-09 04:59:00 +01:00
2026-03-09 04:11:18 +01:00
2026-03-05 03:53:28 +01:00
2026-03-28 16:27:21 +01:00
2026-03-07 02:29:48 +01:00
2026-03-09 00:03:05 +01:00
2026-02-28 14:12:16 +01:00
2026-03-09 04:48:58 +01:00
2026-03-05 06:24:12 +01:00
2026-03-05 03:53:28 +01:00
2026-03-05 03:53:28 +01:00
2026-04-20 20:20:25 +02:00
2026-03-28 16:27:21 +01:00
2026-03-09 02:47:49 +01:00
2026-03-28 16:27:21 +01:00
2026-03-09 04:11:18 +01:00