Backups under .ely-old are numbered in list order, so paths near the Windows limit still upgrade and uninstall. Uninstall checks the list file first and puts everything back if it cannot delete it. Five comments shortened. Round 3 was the last; ticked without review. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
1.7 KiB
FAIL
packaging/windows/installer.nsi:226 — [P2] Moving each payload file beneath .ely-old makes successfully installed paths too long to upgrade or uninstall. Reproduced with a valid 254-character installed file path: the first installation returns 0, but reinstall and uninstall both return 2 because the backup path is 263 characters and Rename fails. The original files remain intact, but this installation cannot be maintained through its installer. Use long-path-capable backup/restore operations and cover first install, reinstall and uninstall near the Windows path limit. Evidence: .work/R6.11-r3-review/probes.log.
packaging/windows/installer.nsi:377 — [P2] The ownership manifest is omitted from the occupied-file preflight, and its deletion error is ignored. Holding .ely-installed open with read sharing only, then running the uninstaller, returns 0 and removes every payload file while leaving the locked manifest behind. This contradicts R6.11's requirement that an occupied file leave the installation unchanged. Check the manifest before moving payload files and handle its deletion failure transactionally; add a locked-manifest uninstall regression. Evidence: .work/R6.11-r3-review/probes.log.
packaging/windows/files.sh:2 — [P3] Five new comments exceed the explicit ten-word limit: this header, packaging/windows/installer.nsi:143, packaging/windows/installer.nsi:262, tests/scripts/windows-installer.sh:25, and tests/scripts/windows-installer.sh:134. Running tests/scripts/comments.py against an unchanged copy of these files exits 1 and reports all five. Shorten these comments to at most ten words while keeping each on one line. Evidence: .work/R6.11-r3-review/comments.log.