Apply review request from 2026-11-01: catch (NotImplementedError, OSError) around only the two symlink_to calls and report an unavailable capability through skipTest, so the test no longer raises PermissionError before the subprocess starts on hosts without symlink privilege. The subprocess and the exit-code, message and no-traceback assertions stay outside the catch; the production change is untouched.
Co-authored-by: rooklz <[email protected]>
test_selected_asset_metadata_is_checked_before_any_download now includes null, empty, uppercase and md5 digests among the rejected values, and its baseline and the deep-JSON fixture carry a valid digest. On the previous build_web.py seven of these cases are accepted and the test fails.
Culprits #11725 (guest_timed_wait_cpu) and #12788 (web_library_assets), run 41054424215.
guest_timed_wait_cpu aborted on a latency bound on a loaded runner (max overshoot 3.8 ms already
in the 100 us case); Linux bounds are now 10 ms p99 / 50 ms max, Windows keeps its own.
test_invalid_archive_entries_are_rejected resolved a historical revision with git, which the
shallow CI checkout on Windows lacks; it now patches release_web_files like its siblings.
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
The Pages deploy has failed since #11228 added failure-report.mjs to
WEB_FILES: build_web.py --release required the release zip's file set to
equal main's current WEB_FILES, but the latest release (v0.1.3) was
packaged before that file existed, so every run stopped with "Invalid web
release archive layout".
Require the core files the site needs (index.html, app.mjs, worker.mjs and
native/relinker_wasm.*) plus web-release.json, and allow only names from
WEB_FILES. Unknown or duplicate entries, encrypted or empty files, the
size limits and the tag/revision check are unchanged. The release is
served as shipped, so it stays self-consistent.