tools/test_web.py launched archive-root, archive-windows and archive.test but not
archive-reserved.test.mjs, which covers the superscript Windows device names
(COM1 with a superscript digit, LPT2 and so on) added with 3397e873bc. No
workflow, script or CTest entry referenced it, so a regression in validPath for
those names went unnoticed. It runs next to the other archive tests now.
A failed inspect or conversion hid the progress panel that held the
conversion log, cleared the selected archives and showed a single line,
so the only evidence of the failure was gone and a multi-GB input had to
be picked again. Compose the message with the phase, the current input,
the target, the libraries tag and the last 150 log lines, and show it in
the error box under "Failure details" so it can be copied into a report.
The report is a pure function in failure-report.mjs and is covered by
node tests.
Wrap test_web entrypoint in main(argv=None) with UTF-8 stream
reconfiguration using backslashreplace error handling.
Check existence of the archive module before reading, decode with
utf-8-sig to tolerate leading BOMs, validate the zip library URL match,
and catch subprocess and network errors cleanly via parser.error.
Backslash names and MS-DOS attributes from an MS-DOS host, a .. escape written with backslashes, and a Unix-host name with a backslash.
Co-Authored-By: Claude Opus 5.5 <[email protected]>