diff --git a/docs/panels.md b/docs/panels.md index d9c47f7..ea878cd 100644 --- a/docs/panels.md +++ b/docs/panels.md @@ -168,6 +168,21 @@ selection while wearing the headset, physical placement, and non-XR Chromium. The API reports that focus was *requested*: another action can take focus before we observe the result. Closed panels are rejected after re-enumeration. +### Shared-device recheck, 2026-09-29 + +**Verified:** the follow-up's atomic `mkdir /tmp/frame-test.lock` attempts +failed because another thread held the lock. The existing lock was left alone; +no applications were installed, launched or stopped in this follow-up. The last +read-only battery check showed 62%, charging. The 180 Python and 8 website tests +passed again locally. + +**Unverified in this follow-up:** the prepared browser-button test (Refresh, +selection, reload and Close) and repeated OpenXR transition could not run under +the shared lock. The device results elsewhere in this page are the earlier +2026-09-28 observations, not results from this blocked recheck. In particular, +HTTP focus is not evidence of worn-headset laser input. Follow the +[shared-device test procedure](testing.md#headset-smoke-test) for the next run. + ## Saved spatial layouts: blocked on the current panel route **Verified 2026-09-28**, same build, using a temporary xterm panel with diff --git a/docs/testing.md b/docs/testing.md index a36b7b7..2e85f51 100644 --- a/docs/testing.md +++ b/docs/testing.md @@ -104,6 +104,20 @@ switch while SSH is down: ## Headset smoke test +**Documented shared-device procedure:** before a test installs, launches or +stops an application, acquire `ssh frame 'mkdir /tmp/frame-test.lock'`. If it +fails, leave that lock alone and continue offline work. Only the thread that +acquired it releases it with `ssh frame 'rmdir /tmp/frame-test.lock'`, after +cleanup. Keep each device session to a few minutes. + +Check battery capacity and charging state under `/sys/class/power_supply` +before and after; keep capacity above 20%. Stop only processes started by the +test, remove temporary installs and profiles, and restore the prior dashboard +state. Leave Steam and SteamVR running. Do not reboot or change global settings. +Record the build, actual interaction results, cleanup and any unworn-headset +limits alongside screenshots or logs. These are caller responsibilities; the +smoke script below does not acquire this shared lock itself. + ```sh scripts/frame-smoke.sh # needs `ssh frame` to work without a password scripts/frame-smoke.sh --pair # also pairs a throwaway key: approve it in the headset