- 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>
- 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>