diff --git a/docs/evidence/v0450-assets-2026-10-27.json b/docs/evidence/v0450-assets-2026-10-27.json new file mode 100644 index 0000000..fb35854 --- /dev/null +++ b/docs/evidence/v0450-assets-2026-10-27.json @@ -0,0 +1,76 @@ +{ + "tag": "v0.4.50", + "releaseId": 424993367, + "tagNameAtAudit": "v0.4.50", + "draftAtAudit": true, + "sha256sumsSha256": "85383104a8f08f49ffde24ac867f9c2ead41951e602600a9d22d58bc19bf06f5", + "assets": [ + { + "name": "Frame-Control-mac-arm64.dmg", + "size": 173090558, + "sha256": "d402924394725bac2b28bef17c7945e2f7e4c3093227eace78a42ed80e864be9", + "udifTrailer": "ok" + }, + { + "name": "Frame-Control-mac-arm64.zip", + "size": 172911785, + "sha256": "2583937fefdc315706018c1bf794b916726ee55b461e321c3334df21245a110d", + "zipCrc": "ok", + "members": 1666, + "bundleVersion": "0.4.50" + }, + { + "name": "Frame-Control-mac-x64.dmg", + "size": 180139223, + "sha256": "2128c14b15dd1a2a59790c43d42640a25185562056796a3437910d6f88f996c8", + "udifTrailer": "ok" + }, + { + "name": "Frame-Control-mac-x64.zip", + "size": 179998207, + "sha256": "ed684023ff087d6741e88d4ca4f8a47e67bec07255fc73fbd18a6bcaa42d14fe", + "zipCrc": "ok", + "members": 1662, + "bundleVersion": "0.4.50" + }, + { + "name": "Frame-Control-Setup-x64.exe", + "size": 147348168, + "sha256": "7c46fcc759cefb9060e1dc2fce39682f6dad306f3666805f77ce707e16ef3e2c", + "peMachine": 332 + }, + { + "name": "Frame-Control-win-x64.zip", + "size": 194302082, + "sha256": "57e71304bae96dc8aab6b845a64c27ac428931d02bb41ae60b33b19fcd11193f", + "zipCrc": "ok", + "members": 1510 + }, + { + "name": "Frame-Control-linux-x86_64.AppImage", + "size": 175453095, + "sha256": "d2196b9a50d0777203e60721dd19c6edbb5c18a7639148f0a496d420e231b053", + "elfMachine": 62 + }, + { + "name": "Frame-Control-linux-arm64.AppImage", + "size": 167036625, + "sha256": "49370f9c27931bf6c28676d627dc34553550b544ab38b7f4be8e8f6dbc9b7c4b", + "elfMachine": 183 + }, + { + "name": "Frame-Control-linux-amd64.deb", + "size": 142209572, + "sha256": "430d057f234557f5f9dbb3e2cff3469829d041d0d7be191e70e6ef7de6663256", + "debVersion": "0.4.50", + "architecture": "amd64" + }, + { + "name": "Frame-Control-linux-arm64.deb", + "size": 129291236, + "sha256": "6403f8caafcdd5832415547e146ce3886cf7358e0c3a8898f4ee6e9a0a7b05ea", + "debVersion": "0.4.50", + "architecture": "arm64" + } + ] +} diff --git a/docs/evidence/v0450-release-2026-10-27.md b/docs/evidence/v0450-release-2026-10-27.md new file mode 100644 index 0000000..be3f8e4 --- /dev/null +++ b/docs/evidence/v0450-release-2026-10-27.md @@ -0,0 +1,75 @@ +# v0.4.50 tagged release verification, 27 October 2026 + +The annotated `v0.4.50` tag dereferences to merged main commit +`2797212d8c95311deb8ba73043d0f90ba10bc962`. Its tree exactly matched +the reviewed [candidate PR #360](https://github.com/saphid/frame-control/pull/360) +head `dab13fa8763b4f836cd49d398d152124655ea8dc`. The candidate includes +the Framey and Windows changes listed in the public release notes and the +publisher gate that checks every workflow run attempt. + +## Exact commit and tagged build gates + +- [Main checks](https://github.com/saphid/frame-control/actions/runs/40440862876) + completed successfully on the tag commit: seven of seven jobs, including + e2e, iOS, Windows, macOS, Linux and the aggregate gate. +- [Native Decky runtime](https://github.com/saphid/frame-control/actions/runs/40440862867) + completed successfully on that commit: AMD64 and ARM64 actual Decky 3.3.0 + discovery and safe probes. +- An exact-main [installer preview](https://github.com/saphid/frame-control/actions/runs/40441532929) + built Windows, Linux, Apple Silicon Mac and Intel Mac installers successfully + before tagging. Its draft and checksum jobs were inapplicable to the manual + preview and skipped by their tag-only conditions; they were not release gates. +- The [exact-tag release workflow](https://github.com/saphid/frame-control/actions/runs/40442228066) + then passed all six jobs on its first attempt: draft, four platform builds, + and checksums. No tagged job failed, was cancelled, skipped or overridden. + +The draft contained exactly ten installer assets and `SHA256SUMS` before +publication. Every installer was independently downloaded by GitHub asset ID, +one file at a time. Its downloaded size and SHA-256 matched GitHub's asset +metadata and the downloaded `SHA256SUMS`; the latter's SHA-256 was +`85383104a8f08f49ffde24ac867f9c2ead41951e602600a9d22d58bc19bf06f5`. +The [sanitized audit result](v0450-assets-2026-10-27.json) records all ten +names, sizes, hashes and package checks. The audit also checked both Mac ZIP +CRCs and bundle version `0.4.50`, both DMG UDIF trailers, the Windows ZIP +CRC and PE installer header, both AppImage ELF architectures, and both DEB +version and architecture fields. The Windows NSIS installer itself has a +32-bit PE launcher; tagged Windows CI installed its x64 payload and checked +packaged resources and Python libraries. + +The independently downloaded Linux x86_64 AppImage had SHA-256 +`d2196b9a50d0777203e60721dd19c6edbb5c18a7639148f0a496d420e231b053`. +Its first local launch exited inside the workspace sandbox before the server +answered. The same bytes then passed outside that sandbox under isolated Xvfb: +HTTP 200 with `FrameControl/1`, followed by a stopped server. The launcher +used a temporary profile and disabled telemetry and update checks. Tagged +Linux CI also launched its own built AppImage. No physical Mac or Windows +launch of these exact installers was performed. + +## Real Frame and publication + +The [candidate evidence](v0450-candidate-2026-10-27.md) records a unique-lock +real Frame smoke on the version-bumped source: **12 passed, one optional +x86_64 launch skipped, zero failed**. Steam Linux Runtime 4 was absent, so no +x86_64 launch is claimed. A separate fresh-lock cleanup audit found no owned +test title directories, metadata or processes; both locks were released. +SteamVR activity was 3 (standby), proximity raw 3.25 and battery 100%. +There was no wearer confirmation, wake command or worn interaction test. +The private smoke result's SHA-256 is +`7b8d88aafb4459bf882edeb10f65c021c5aa25ad9ed2755faf04e3b4a95c1632`. + +`scripts/publish-release.sh --dry-run v0.4.50` passed the exact main, +native runtime and tagged release jobs, all ten installer hashes, regenerated +`SHA256SUMS`, draft notes and update-manifest checks. The real publisher +repeated those gates, attached `update.json`, and published +[v0.4.50](https://github.com/saphid/frame-control/releases/tag/v0.4.50) at +**03:19:21 UTC**. GitHub's latest-release API returned `draft=false`, +`prerelease=false`, ten installers, `SHA256SUMS` and `update.json`. A fresh +public latest-download of `update.json` reported version `0.4.50`, the +correct release page, ten hashes matching the independent downloads, and the +worn-headset limit in its notes. + +The exact-version official Decky catalog is **6 works / 51 partial / +48 broken / 11 N/A**. These statuses have the scoped evidence in +[the compatibility table](../framey-compatibility.md). Worn headset +visibility, physical controller input, VR keyboard and optical comfort remain +unverified. The hourly shared-lock worn check remains enabled.