8 Commits
Author SHA1 Message Date
HakumaguroandClaude Opus 5.5 874b134817 tune.py: keep one speech engine for the whole calibration
Every prompt used to start PowerShell and load System.Speech (~1.5 s idle, longer with VRChat and
SteamVR running), so prompts lagged their beeps, overlapped and were hard to hear. Start the engine once
during the lead-in and hand each prompt to it (7-10 ms); a new prompt cancels one still speaking.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-28 00:31:35 +09:00
HakumaguroandClaude Opus 5.5 bb2ff3664d tune.py: validate installed config values before analysing or recording
A deadband of 0.5 (rejected by the module) made analyze divide by zero. Check deadband and
assistClosed with the module's limits up front, speak a clear error and change nothing.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-28 00:04:37 +09:00
HakumaguroandClaude Opus 5.5 1f31e0cc1a Follow-up review fixes: config relationship checks, retry failed config reads, analyzer uses configured deadband
- ModuleConfig.Validate: maxFloor + minRange <= 1, minCeil > 0; LidCal clamp bound can no longer exceed 1
- ReloadConfig: record the timestamp only after a successful load so a temporarily locked file is retried
- tune.py analyze: map with lid.deadband / wink.assistClosed from the installed config; STEAMFRAME_CONFIG override

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-27 23:50:47 +09:00
HakumaguroandClaude Opus 5.5 f5ec1458fe Review fixes: safer calibration and config, neutral eyes without data, pinned frameeyeosc (0.2.2)
- tune.py: reject reversed/flat per-eye ranges and keep the previous config; recommend wink assist;
  readiness check before recording; skip malformed trace lines
- module: invalid steamframe-config.json is not applied (last good config kept, configError reported);
  neutral eyes when no source is fresh; trace written with invariant culture
- setup: sandbox mode leaves real SteamVR settings and firewall alone; block rules handled separately;
  headset target only counts connected adapters
- headset-setup.sh: build a pinned, reviewed frameeyeosc revision and move existing checkouts to it

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-27 21:37:01 +09:00
HakumaguroandClaude Opus 5.5 72da13354e One-step setup, spoken status check, menu, release packaging
- module: works if only one of UDP 9015/9020 can be opened; logs state changes only (capped);
  trace is opt-in; writes a status file; reports when another module owns eye tracking
- scripts/setup.ps1: idempotent installer with dry run, uninstall and optional headset setup
- scripts/doctor.ps1: health check with a spoken summary
- Start Here.cmd menu; tune.py calibrate (spoken, one step); package.ps1 release zip
- README: quick start and troubleshooting first

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-27 16:41:26 +09:00
HakumaguroandClaude Sonnet 5 3c6654736e Blink glitch rule, wink assist and analyzer updates
- blink.saturatedRaw: a closed lid with the other pinned at its ceiling is a blink, however long
- wink.assist: show the other eye open when it stays above its floor while one eye is closed
- tune.py analyze understands the ceiling signature and caps holdMs

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-26 11:14:32 +09:00
HakumaguroandClaude Sonnet 5 89c2235669 Blink coupling for lopsided tracker blinks, analyzer blink detection, CLAUDE.md
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-26 10:52:50 +09:00
HakumaguroandClaude Sonnet 5 b8d92e23f7 Steam Frame eye tracking module for VRCFT, tuning tool and setup scripts
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-26 10:39:16 +09:00