PASS: throw-away signing key generated
PASS: fake next-version build differs from the current build
PASS: publish-update.ps1 wrote a signed versions.json
PASS: publish-update.ps1 wrote the release-notes page
PASS: publish-update.ps1 -Verify confirms the served manifest signature, size and SHA-256
PASS: S1 the app restarted as 2.1.1 after the update (phase=after version=2.2.10)
PASS: S1 ClearDesk.exe is the new build
PASS: S1 changed and new files were installed
PASS: S1 a file removed in the new release was removed
PASS: S1 user files and settings were not touched
PASS: S1 no leftover .cdold files or journal
PASS: S1 the old ClearDesk.exe was backed up
PASS: S1 updater result reports success
PASS: S1 the interrupted download resumed with an HTTP Range request
PASS: S1 the first run found the update through the second source after the dead one
PASS: S2 a corrupted download is refused (install-error=下载的更新包校验失败（SHA256 与签名清单不一致），已丢弃，未做任何更改。)
PASS: S2 the install folder is untouched
PASS: S2 the corrupted file was discarded
PASS: S3 a manifest edited after signing (version bumped) is rejected
PASS: S3 nothing was installed
PASS: S3 an unsigned manifest is rejected
PASS: S3 a validly signed but OLDER release is never offered (no downgrade)
PASS: S4 a package whose files do not match its checksum list is refused before anything is replaced
PASS: S4 the install folder is untouched
PASS: S5 after a failed swap the OLD version is running again
PASS: S5 the updater reports a rolled-back failure (result={"ok":false,"rolledBack":true,"from":"2.2.9","to":"2.2.10","message":"更新失败：另一个进程正在使用此文件，因此该进程无法访问此文件。 已自动恢复为原来的版本，没有丢失任何设置。","time":"2026-11-02T15:27:24")
PASS: S5 every file is exactly as before the attempt
PASS: S5 no leftovers after the rollback
PASS: S6 a new version that exits immediately is rolled back and the old one restarts
PASS: S6 files restored
PASS: S7 updateUrl from a signed manifest is remembered as the new update source
PASS: S7 the new source is saved in the settings (no new build needed)
PASS: the real autostart entry was not touched by any test
INFO: scenarios run in C:\Users\10980\ClearDeskFix-1021\src\ClearDesk-1.8.2\source\artifacts\UpdateE2E-44234fa5 on loopback only; signing used a throw-away key; the user's installs and the real update key were not used.
