v1.1.0-beta.030 - fix: salvage unrar listing output on non-zero exit so RAR archives reach the unrar decoder
🐛 The Bug
- unrar exits non-zero on vintage archives with benign structural quirks (e.g. missing end-of-archive block) even when the listing prints in full
- The converter treated any listing failure as not a RAR archive and fell back to unar, which fails on RAR 2.0 streams — the exact decoder the unrar integration was meant to bypass
- Result: every legacy CBR still failed conversion despite unrar being present in the image
🔧 The Fix - Salvage stdout from the rejected execFile call — Node attaches captured output to the error object
- Route to the unrar extraction path whenever the listing has content; only an empty listing (genuine non-RAR file) falls back to unar
- Extraction success continues to be judged by extracted-vs-listed page count, never by exit code
✅ Verification - Corrected logic tested inside the production image via Node against a failing archive: listing exit 3 salvaged, 36 of 36 pages extracted