From 59ea09325ca7fe9bc55af02934b6a73debf489d0 Mon Sep 17 00:00:00 2001 From: SAPHID Date: Mon, 26 Oct 2026 10:33:21 +0000 Subject: [PATCH] Prepare Frame Control v0.4.45 candidate --- app/package-lock.json | 4 +- app/package.json | 2 +- docs/evidence/v0445-candidate-2026-10-26.md | 75 +++++++++++++++++++++ 3 files changed, 78 insertions(+), 3 deletions(-) create mode 100644 docs/evidence/v0445-candidate-2026-10-26.md diff --git a/app/package-lock.json b/app/package-lock.json index 44a4e1a..31ad981 100644 --- a/app/package-lock.json +++ b/app/package-lock.json @@ -1,12 +1,12 @@ { "name": "frame-control", - "version": "0.4.44", + "version": "0.4.45", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "frame-control", - "version": "0.4.44", + "version": "0.4.45", "license": "MIT", "devDependencies": { "electron": "^44.4.5", diff --git a/app/package.json b/app/package.json index b815f52..7a73d82 100644 --- a/app/package.json +++ b/app/package.json @@ -1,7 +1,7 @@ { "name": "frame-control", "productName": "Frame Control", - "version": "0.4.44", + "version": "0.4.45", "description": "Desktop app for managing a Valve Steam Frame over SSH", "private": true, "main": "main.js", diff --git a/docs/evidence/v0445-candidate-2026-10-26.md b/docs/evidence/v0445-candidate-2026-10-26.md new file mode 100644 index 0000000..b625c81 --- /dev/null +++ b/docs/evidence/v0445-candidate-2026-10-26.md @@ -0,0 +1,75 @@ +# v0.4.45 candidate gate, 26 October 2026 + +The candidate starts from main commit +`f88e2ed209167a836282a969a71df4c897e658a8`, after PR #316 bound +Framey chunk URLs to installed store receipts and PR #317 fixed shared Decky +activation and confirmation controls. PR #319 also added a bounded retry to +the fake Frame test image after Valve's ARM64 package server repeatedly +truncated downloads. The app and lockfile are bumped to 0.4.45. The official +116-plugin catalog remains **4 works / 49 partial / 52 broken / 11 N/A**. +AlarMe remains partial: its silent timer, preset and stopwatch paths were +exercised with the official ARM64 backend, while sound, reminders, sleep +controls, closed-panel notifications and worn VR were not verified. + +## Locked real Frame smoke + +At 10:26 UTC, `scripts/frame-smoke.sh` ran on that combined main commit after +atomically acquiring its own `/tmp/frame-test.lock`. Read-only preflight found +SteamVR activity 3 (standby), proximity 6.3125 and battery 95%. On Frame OS +0.5.6 build `20261022.6153909`, ARM64 and Proton test titles installed, +launched and were removed. The optional x86_64 title installed and was +removed, but its launch was skipped because Steam Linux Runtime 4 is absent. +The result was **12 passed / 1 skipped / 0 failed**. Owned process and title +cleanup passed, the command exited 0 and released its lock. The private +detailed report is +`tests/smoke/results/2026-10-26T102653Z-20261022.6153909.json` in the +test checkout. + +## Unworn Framey panel exercise + +At 10:29 UTC, `scripts/framey-vr-check.py --exercise` ran the same combined +main commit under a separate random shared-lock owner. It began in standby +with proximity 6.3125 and battery 95%. The temporary managed panel, Decky +service and repository sample passed the shipped host's setting save and +fresh-iframe reopen, quick action, slider and text checks. A trusted +synthetic OpenVR pointer reached the panel. The scroll buttons moved a +temporary test region **0 → 120 → 0**; synthetic native wheel input still +produced no wheel event or movement. The stereo compositor image changed and +the `/dev/video99` mirror snapshot contained varied, nonblack pixels. This +single mirror image does not establish moving passthrough content or what a +wearer sees. The direct overlay image read returned error 24 and zero size, +so it is not used as texture evidence. + +The private report and room-bearing images are in the test host's temporary +output folder. Reported hashes are stereo before +`84fe777535870c54cb381bbee3223684d1e0e4f2e6626e6d74ee902a4eec9c1b`, +stereo after +`4666d2b0908657489b8cc21520afc3deed4afa26a4c555c782298992b72abdd1`, +and mirror +`0769bbc45bd37266cc9ad80154cbd8a44ae3e1577cfa0d419e6af012afbf0fb4`. +No raw image is committed. + +The exercise exited 0 with no cleanup errors, removed its temporary services +and power recovery timer, restored and read back the original +`power.pauseCompositorOnStandby=false` and +`power.turnOffScreensTimeout=5`, found battery 95% and released only its lock. +Its immediate post-run activity was 0 after the temporary wake. A separate +locked read-only check at 10:31 UTC found activity **3 standby**, proximity +6.3125, battery 95%, no cleanup errors, and released its lock. + +The sample is not an official plugin. This exercise does not test the new +receipt-bound chunk path on real hardware or show AlarMe inside VR. Backend +registration, synthetic pointer delivery and changing compositor pixels do +not prove physical-controller or wearer-visible usability. No wearer +confirmation was available, so `scripts/framey-worn-check.py` was not run; +the hourly worn-headset schedule remains enabled. + +## Publication boundary + +This is candidate evidence, not a published-release result. Exact-head PR +and post-merge CI, tagged installers, all ten installer digests with +`SHA256SUMS`, independent package checks, publisher dry run and public +`update.json` readback remain required before publication. Physical Mac and +Windows launch of the eventual tagged bytes, audible alarms, official-plugin +VR panels, optical readability, physical controllers, haptics and the VR +keyboard remain unverified.