From 63f1f7fb3966c9a533f8e25c64d64b05fdb05a08 Mon Sep 17 00:00:00 2001 From: SAPHID Date: Mon, 26 Oct 2026 05:20:11 +0000 Subject: [PATCH 1/4] Prepare Frame Control v0.4.42 candidate --- app/package-lock.json | 4 ++-- app/package.json | 2 +- docs/evidence/v0442-candidate-2026-10-26.md | 9 +++++++++ 3 files changed, 12 insertions(+), 3 deletions(-) create mode 100644 docs/evidence/v0442-candidate-2026-10-26.md diff --git a/app/package-lock.json b/app/package-lock.json index f4eb3f5..9c584cc 100644 --- a/app/package-lock.json +++ b/app/package-lock.json @@ -1,12 +1,12 @@ { "name": "frame-control", - "version": "0.4.41", + "version": "0.4.42", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "frame-control", - "version": "0.4.41", + "version": "0.4.42", "license": "MIT", "devDependencies": { "electron": "^44.4.5", diff --git a/app/package.json b/app/package.json index 9e0c930..26d0c0c 100644 --- a/app/package.json +++ b/app/package.json @@ -1,7 +1,7 @@ { "name": "frame-control", "productName": "Frame Control", - "version": "0.4.41", + "version": "0.4.42", "description": "Desktop app for managing a Valve Steam Frame over SSH", "private": true, "main": "main.js", diff --git a/docs/evidence/v0442-candidate-2026-10-26.md b/docs/evidence/v0442-candidate-2026-10-26.md new file mode 100644 index 0000000..2d97cfa --- /dev/null +++ b/docs/evidence/v0442-candidate-2026-10-26.md @@ -0,0 +1,9 @@ +# v0.4.42 candidate gate, 26 October 2026 + +This branch starts from main merge commit `c88736c6ce2d1755f902f824ef9917e2e75da505` and bumps the app and lockfile to 0.4.42. It includes the [v0.4.41 release evidence](v0441-release-2026-10-26.md), the Framey panel lifecycle change in PR #299 and the truthful optional-runtime smoke result in PR #300. The receipt-bound API guard in PR #301 is still in CI and is **not** in this initial candidate; sync it from main after it merges and rerun exact-head checks. + +The last real-Frame title smoke was from PR #300's exact source before this release branch: under its unique shared lock, standby activity 3, proximity 6.25 and battery 99%, it recorded **12 passed / 1 skipped / 0 failed** on Frame OS 0.5.6 build `20261022.6153909`. ARM64 and Proton test executables ran. The x86_64 launch was skipped because Steam Linux Runtime 4 was not installed; all test titles were cleaned up and only the run's own lock was released. See [the detailed evidence](frame-smoke-runtime-skip-2026-10-26.md). This is not yet an exact v0.4.42 candidate or tagged-source smoke result. + +An exact-head unworn Framey panel exercise for PR #299 attempted to acquire `/tmp/frame-test.lock` at 05:14 UTC and stopped before any headset read because another owner held the lock. The panel lifecycle and receipt guard still need a safe locked unworn exercise before publication. No person wore the Frame; physical controller interaction, official plugin VR panels, optical readability, VR keyboard and comfort remain unverified. + +The release tag and installers do not exist at this candidate stage. Publication remains gated on the final merged main, exact-head CI, a safe real-Frame smoke and unworn panel exercise when the shared lock is free, then tagged installer checksums, package checks and public updater readback. The 116 exact-version Decky catalog remains **3 works / 48 partial / 54 broken / 11 N/A**; the two additional works claims are restricted to tested per-app silent-stream volume control. From 5381667947e3c02df334a52fc62ecf815320008a Mon Sep 17 00:00:00 2001 From: SAPHID Date: Mon, 26 Oct 2026 05:33:31 +0000 Subject: [PATCH 2/4] Update v0.4.42 candidate with Intel Mac evidence --- docs/evidence/v0442-candidate-2026-10-26.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/evidence/v0442-candidate-2026-10-26.md b/docs/evidence/v0442-candidate-2026-10-26.md index 2d97cfa..7675593 100644 --- a/docs/evidence/v0442-candidate-2026-10-26.md +++ b/docs/evidence/v0442-candidate-2026-10-26.md @@ -1,9 +1,9 @@ # v0.4.42 candidate gate, 26 October 2026 -This branch starts from main merge commit `c88736c6ce2d1755f902f824ef9917e2e75da505` and bumps the app and lockfile to 0.4.42. It includes the [v0.4.41 release evidence](v0441-release-2026-10-26.md), the Framey panel lifecycle change in PR #299 and the truthful optional-runtime smoke result in PR #300. The receipt-bound API guard in PR #301 is still in CI and is **not** in this initial candidate; sync it from main after it merges and rerun exact-head checks. +This branch bumps the app and lockfile to 0.4.42. It includes the [v0.4.41 release evidence](v0441-release-2026-10-26.md), the Framey panel lifecycle change in PR #299, the truthful optional-runtime smoke result in PR #300, and the physical Intel Mac acceptance and host-test fixes merged as PR #303 (`fe1da43171883dc31161ff607c6b5a6ddf75f6ef`). The receipt-bound API guard in PR #301 is still in exact-head CI and is **not yet** in this candidate; sync it from main after it merges and rerun all checks. The last real-Frame title smoke was from PR #300's exact source before this release branch: under its unique shared lock, standby activity 3, proximity 6.25 and battery 99%, it recorded **12 passed / 1 skipped / 0 failed** on Frame OS 0.5.6 build `20261022.6153909`. ARM64 and Proton test executables ran. The x86_64 launch was skipped because Steam Linux Runtime 4 was not installed; all test titles were cleaned up and only the run's own lock was released. See [the detailed evidence](frame-smoke-runtime-skip-2026-10-26.md). This is not yet an exact v0.4.42 candidate or tagged-source smoke result. -An exact-head unworn Framey panel exercise for PR #299 attempted to acquire `/tmp/frame-test.lock` at 05:14 UTC and stopped before any headset read because another owner held the lock. The panel lifecycle and receipt guard still need a safe locked unworn exercise before publication. No person wore the Frame; physical controller interaction, official plugin VR panels, optical readability, VR keyboard and comfort remain unverified. +An exact-head unworn Framey panel exercise for PR #299 attempted to acquire `/tmp/frame-test.lock` at 05:14 UTC and stopped before any headset read because another owner held the lock. A later locked exercise from PR #301's corrected source commit `c2f94c2` passed at 05:26 UTC: the sample setting saved through real Decky, survived a fresh iframe, the compositor changed, and the test restored power and released its own lock. [PR #301](https://github.com/saphid/frame-control/pull/301) carries the sanitized receipt-guard evidence. That source is not yet in this release branch, so the final candidate still needs its own safe locked exercise. No person wore the Frame; physical controller interaction, official plugin VR panels, optical readability, VR keyboard and comfort remain unverified. -The release tag and installers do not exist at this candidate stage. Publication remains gated on the final merged main, exact-head CI, a safe real-Frame smoke and unworn panel exercise when the shared lock is free, then tagged installer checksums, package checks and public updater readback. The 116 exact-version Decky catalog remains **3 works / 48 partial / 54 broken / 11 N/A**; the two additional works claims are restricted to tested per-app silent-stream volume control. +The release tag and installers do not exist at this candidate stage. Publication remains gated on the final merged main, exact-head CI, a safe real-Frame smoke and unworn panel exercise when the shared lock is free, then tagged installer checksums, package checks and public updater readback. The 116 exact-version Decky catalog remains **3 works / 48 partial / 54 broken / 11 N/A**; the two additional works claims are restricted to tested per-app silent-stream volume control. The official v0.4.39 Intel installer ran on a physical MacBook Air, but no tagged v0.4.42 Mac launch or real OBS audio/video check is claimed. From 27af46dd20d7af30dde4c3f954d7b57b94843594 Mon Sep 17 00:00:00 2001 From: SAPHID Date: Mon, 26 Oct 2026 05:38:34 +0000 Subject: [PATCH 3/4] Record receipt guard in v0.4.42 candidate --- docs/evidence/v0442-candidate-2026-10-26.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/evidence/v0442-candidate-2026-10-26.md b/docs/evidence/v0442-candidate-2026-10-26.md index 7675593..5f6325f 100644 --- a/docs/evidence/v0442-candidate-2026-10-26.md +++ b/docs/evidence/v0442-candidate-2026-10-26.md @@ -1,9 +1,9 @@ # v0.4.42 candidate gate, 26 October 2026 -This branch bumps the app and lockfile to 0.4.42. It includes the [v0.4.41 release evidence](v0441-release-2026-10-26.md), the Framey panel lifecycle change in PR #299, the truthful optional-runtime smoke result in PR #300, and the physical Intel Mac acceptance and host-test fixes merged as PR #303 (`fe1da43171883dc31161ff607c6b5a6ddf75f6ef`). The receipt-bound API guard in PR #301 is still in exact-head CI and is **not yet** in this candidate; sync it from main after it merges and rerun all checks. +This branch bumps the app and lockfile to 0.4.42. It includes the [v0.4.41 release evidence](v0441-release-2026-10-26.md), the Framey panel lifecycle change in PR #299, the truthful optional-runtime smoke result in PR #300, the physical Intel Mac acceptance and host-test fixes in PR #303 (`fe1da43171883dc31161ff607c6b5a6ddf75f6ef`), and the receipt-bound API guard in PR #301 (`ad57662d40d3bbf6c850dd80ddc275280d389c86`). All 11 hosted checks passed on PR #301's exact head before its normal merge. This combined release head still needs its own CI and hardware gates. The last real-Frame title smoke was from PR #300's exact source before this release branch: under its unique shared lock, standby activity 3, proximity 6.25 and battery 99%, it recorded **12 passed / 1 skipped / 0 failed** on Frame OS 0.5.6 build `20261022.6153909`. ARM64 and Proton test executables ran. The x86_64 launch was skipped because Steam Linux Runtime 4 was not installed; all test titles were cleaned up and only the run's own lock was released. See [the detailed evidence](frame-smoke-runtime-skip-2026-10-26.md). This is not yet an exact v0.4.42 candidate or tagged-source smoke result. -An exact-head unworn Framey panel exercise for PR #299 attempted to acquire `/tmp/frame-test.lock` at 05:14 UTC and stopped before any headset read because another owner held the lock. A later locked exercise from PR #301's corrected source commit `c2f94c2` passed at 05:26 UTC: the sample setting saved through real Decky, survived a fresh iframe, the compositor changed, and the test restored power and released its own lock. [PR #301](https://github.com/saphid/frame-control/pull/301) carries the sanitized receipt-guard evidence. That source is not yet in this release branch, so the final candidate still needs its own safe locked exercise. No person wore the Frame; physical controller interaction, official plugin VR panels, optical readability, VR keyboard and comfort remain unverified. +An exact-head unworn Framey panel exercise for PR #299 attempted to acquire `/tmp/frame-test.lock` at 05:14 UTC and stopped before any headset read because another owner held the lock. A later locked exercise from PR #301's corrected source commit `c2f94c2` passed at 05:26 UTC: the sample setting saved through real Decky, survived a fresh iframe, the compositor changed, and the test restored power and released its own lock. See [the sanitized receipt-guard evidence](framey-receipt-live-2026-10-26.md). The final combined candidate still needs its own safe locked exercise. No person wore the Frame; physical controller interaction, official plugin VR panels, optical readability, VR keyboard and comfort remain unverified. -The release tag and installers do not exist at this candidate stage. Publication remains gated on the final merged main, exact-head CI, a safe real-Frame smoke and unworn panel exercise when the shared lock is free, then tagged installer checksums, package checks and public updater readback. The 116 exact-version Decky catalog remains **3 works / 48 partial / 54 broken / 11 N/A**; the two additional works claims are restricted to tested per-app silent-stream volume control. The official v0.4.39 Intel installer ran on a physical MacBook Air, but no tagged v0.4.42 Mac launch or real OBS audio/video check is claimed. +The release tag and published installers do not exist at this candidate stage. Publication remains gated on this combined head's exact-head CI, a safe real-Frame smoke and unworn panel exercise when the shared lock is free, then tagged installer checksums, package checks and public updater readback. The 116 exact-version Decky catalog remains **3 works / 48 partial / 54 broken / 11 N/A**; the two additional works claims are restricted to tested per-app silent-stream volume control. The official v0.4.39 Intel installer ran on a physical MacBook Air, but no tagged v0.4.42 Mac launch or real OBS audio/video check is claimed. From 1903153d7b3f9065e3adcd6f9851d3b711d5c14e Mon Sep 17 00:00:00 2001 From: SAPHID Date: Mon, 26 Oct 2026 05:43:12 +0000 Subject: [PATCH 4/4] docs: record exact v0.4.42 Frame candidate gates --- docs/evidence/v0442-candidate-2026-10-26.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/evidence/v0442-candidate-2026-10-26.md b/docs/evidence/v0442-candidate-2026-10-26.md index 5f6325f..18cb32e 100644 --- a/docs/evidence/v0442-candidate-2026-10-26.md +++ b/docs/evidence/v0442-candidate-2026-10-26.md @@ -1,9 +1,9 @@ # v0.4.42 candidate gate, 26 October 2026 -This branch bumps the app and lockfile to 0.4.42. It includes the [v0.4.41 release evidence](v0441-release-2026-10-26.md), the Framey panel lifecycle change in PR #299, the truthful optional-runtime smoke result in PR #300, the physical Intel Mac acceptance and host-test fixes in PR #303 (`fe1da43171883dc31161ff607c6b5a6ddf75f6ef`), and the receipt-bound API guard in PR #301 (`ad57662d40d3bbf6c850dd80ddc275280d389c86`). All 11 hosted checks passed on PR #301's exact head before its normal merge. This combined release head still needs its own CI and hardware gates. +This branch bumps the app and lockfile to 0.4.42. It includes the [v0.4.41 release evidence](v0441-release-2026-10-26.md), the Framey panel lifecycle change in PR #299, the truthful optional-runtime smoke result in PR #300, the physical Intel Mac acceptance and host-test fixes in PR #303 (`fe1da43171883dc31161ff607c6b5a6ddf75f6ef`), and the receipt-bound API guard in PR #301 (`ad57662d40d3bbf6c850dd80ddc275280d389c86`). All 11 hosted checks passed on PR #301's exact head before its normal merge. The combined release candidate's own headset gates passed; exact-head CI and installer previews remain pending. -The last real-Frame title smoke was from PR #300's exact source before this release branch: under its unique shared lock, standby activity 3, proximity 6.25 and battery 99%, it recorded **12 passed / 1 skipped / 0 failed** on Frame OS 0.5.6 build `20261022.6153909`. ARM64 and Proton test executables ran. The x86_64 launch was skipped because Steam Linux Runtime 4 was not installed; all test titles were cleaned up and only the run's own lock was released. See [the detailed evidence](frame-smoke-runtime-skip-2026-10-26.md). This is not yet an exact v0.4.42 candidate or tagged-source smoke result. +The exact v0.4.42 candidate at `27af46dd20d7af30dde4c3f954d7b57b94843594` ran `scripts/frame-smoke.sh` under its unique shared lock at 05:40 UTC. Locked preflight found standby activity 3, proximity 6.25 and battery 99%. It recorded **12 passed / 1 skipped / 0 failed** on Frame OS 0.5.6 build `20261022.6153909`; ARM64 and Proton test executables launched. The x86_64 launch was skipped because Steam Linux Runtime 4 was not installed. Cleanup passed and the command exited 0. The private detailed result is `tests/smoke/results/2026-10-26T054014Z-20261022.6153909.json` in the candidate checkout. The prior PR #300 result is documented [separately](frame-smoke-runtime-skip-2026-10-26.md). -An exact-head unworn Framey panel exercise for PR #299 attempted to acquire `/tmp/frame-test.lock` at 05:14 UTC and stopped before any headset read because another owner held the lock. A later locked exercise from PR #301's corrected source commit `c2f94c2` passed at 05:26 UTC: the sample setting saved through real Decky, survived a fresh iframe, the compositor changed, and the test restored power and released its own lock. See [the sanitized receipt-guard evidence](framey-receipt-live-2026-10-26.md). The final combined candidate still needs its own safe locked exercise. No person wore the Frame; physical controller interaction, official plugin VR panels, optical readability, VR keyboard and comfort remain unverified. +The exact candidate then ran `scripts/framey-vr-check.py --exercise` under a fresh owned lock at 05:41 UTC. Preflight again found activity 3 and battery 99%. The real Decky sample setting saved `enabled=true` and survived a fresh iframe; the quick action read the same value. A trusted synthetic OpenVR pointer reached the panel; the sample slider reached 50 and CDP text entry after OpenVR focus reached `framey-ci`. Stereo compositor hashes changed from `38265343e13f5915869c9622ab1ceda7c31ab2e9b050f44564cfb9b6dc9f6e6d` to `64cc4c6f865bb8b2f756632c922d17dee12af40d480171586f2e9a51797b83e6`; the mirror capture hash was `165289dca9ad2bd895eb544f5be5d5fa2db7d2f635a927ac68a0c74267f69ee2`. The exercise exited 0 with `passed=true`, battery 99% afterward, original power values restored (`false` / `5.000000`), recovery timer removed, no cleanup errors and its own lock released. Its private full result is `/tmp/framey-v0442-exercise/result.json` on the test host. Synthetic scroll events left `scrollTop=0` and produced no wheel events. No person wore the Frame; physical controller interaction, official plugin VR panels, optical readability, VR keyboard and comfort remain unverified. The earlier [receipt-guard exercise](framey-receipt-live-2026-10-26.md) is separate evidence. -The release tag and published installers do not exist at this candidate stage. Publication remains gated on this combined head's exact-head CI, a safe real-Frame smoke and unworn panel exercise when the shared lock is free, then tagged installer checksums, package checks and public updater readback. The 116 exact-version Decky catalog remains **3 works / 48 partial / 54 broken / 11 N/A**; the two additional works claims are restricted to tested per-app silent-stream volume control. The official v0.4.39 Intel installer ran on a physical MacBook Air, but no tagged v0.4.42 Mac launch or real OBS audio/video check is claimed. +The release tag and published installers do not exist at this candidate stage. Publication remains gated on this combined head's exact-head CI, then tagged installer checksums, package checks and public updater readback. The 116 exact-version Decky catalog remains **3 works / 48 partial / 54 broken / 11 N/A**; the two additional works claims are restricted to tested per-app silent-stream volume control. The official v0.4.39 Intel installer ran on a physical MacBook Air, but no tagged v0.4.42 Mac launch or real OBS audio/video check is claimed.