20 Commits
Author SHA1 Message Date
HakumaguroandClaude Sonnet 5 850f8fc6eb Version 0.2.3
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
v0.2.3
2026-09-28 16:40:48 +09:00
HakumaguroandClaude Sonnet 5 172ff4a4a0 setup.ps1: fix headset password prompt, document what it looks like
The first-time key authorisation piped the public key into ssh, so with
stdin occupied Windows OpenSSH could not read the password. The key now
goes in the command line, password auth is forced for that call, and a
key already in authorized_keys is not appended again.

README: describe the password prompt (nothing shows while typing).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-28 16:38:14 +09:00
HakumaguroandClaude Opus 5.5 06d8c35833 CLAUDE.md: v0.2.2 released
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-28 00:43:28 +09:00
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>
v0.2.2
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 f7a9140208 README: explain why SSH is needed, how to turn it off, and how to install without it
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-27 20:18:48 +09:00
HakumaguroandClaude Opus 5.5 890d50e439 CLAUDE.md: v0.2.1 released
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-27 20:01:39 +09:00
HakumaguroandClaude Opus 5.5 9d1bc40adc Fix VRCFT Module Registry crash: write a complete module.json (0.2.1)
VRCFaceTracking's Module Registry page crashes the app (WinUI 0xc000027b) when an
installed module's module.json has no DownloadUrl/ModulePageUrl. Reproduced with UI
Automation and confirmed by removing/restoring only those two fields.

- common.ps1: Write-ModuleJson writes every field, no BOM
- setup.ps1: repairs an incomplete or outdated module.json on existing installs
- version 0.2.1; README troubleshooting row; CLAUDE.md pitfall

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
v0.2.1
2026-09-27 20:00:08 +09:00
HakumaguroandClaude Opus 5.5 52b80a0cc1 CLAUDE.md: record the real headset-setup test
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-27 18:14:41 +09:00
HakumaguroandClaude Opus 5.5 865d78bb24 CLAUDE.md: current state, release steps, testing recipes and PowerShell pitfalls
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-27 18:08:18 +09:00
HakumaguroandClaude Opus 5.5 653af42b20 README: point the quick start at the release zip
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
v0.2.0
2026-09-27 17:26:47 +09:00
HakumaguroandClaude Opus 5.5 3610115286 Setup: refresh a stale headset target, strip CRLF on the headset, safer firewall prompt; doctor shows idle reason
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-27 16:45:29 +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 bfa8dfbb2b Note headset auto-start via systemd user unit
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-26 10:57:02 +09:00
HakumaguroandClaude Sonnet 5 ab15ef4d23 Document the avatar Eye Sync cause of both-eyes winks; troubleshooting section
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-26 10:55:36 +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