Files
wristivo/docs/FIRST-DEVICE-PROTOTYPE.md

3.6 KiB

First-device prototype

Integration branch: integration/first-device-prototype. Use this branch's Xcode project, not the original agents' worktrees. The integration commit accompanies this document; record git rev-parse HEAD in every device test. No remote push or signing configuration has been changed by the integrator.

What is connected

  • iPhone live setup → stable opaque TV identity → iPhone Keychain → one TVConnectionActor → TLS WebSocket.
  • Watch Connect → phone-issued session → watch touch commands → same TV actor.
  • Watch physical neutral calibration → explicit Start → up to ten seconds of sampled wrist rotation → conservative classifier → same live relay.
  • Foreground interruption, reachability loss, expiry and Stop halt motion. No command backlog or automatic replay. Wrist/crown changes clear calibration.
  • Demo is an explicit mode. Entering phone Demo disconnects live TV control. Watch Demo stops motion and ends its local relay session. Demo touch actions do not contact the TV.

First run

  1. Open Wristivo.xcodeproj, select your signing team in Xcode and install the iPhone/watch apps on the paired test devices. Device installation/provisioning remains a user step; unsigned builds do not prove it works.
  2. Keep both apps foreground initially. On iPhone enter the TV address from the TV's network settings. Tap Pair / pair again, grant local-network access if prompted, and approve Wristivo using the existing TV controls.
  3. If TLS fails and Review TV certificate appears, inspect the selected address and fingerprint. Approval is a separate explicit action, followed by a fresh Pair action. The fingerprint from the same connection does not independently authenticate the TV. A changed fingerprint discards the old token and requires pairing again. There is no plaintext fallback.
  4. Test one iPhone direction and observe the TV separately. Stop if the TV does not pair, the certificate cannot be reviewed, or a command does not behave as expected. Do not mark compatibility from a transport receipt.
  5. On watch tap Connect to iPhone, then test one watch touch direction. Touch controls do not need motion permission or calibration.
  6. Choose the wrist/crown orientation, hold still for one second and tap Calibrate. Calibration uses actual sensor samples and times out after eight seconds if stability is not achieved. Tap Start for a ten-second motion session. Test one deliberate direction, returning to neutral. Axis mappings and thresholds are hypotheses until evaluated on hardware.
  7. Verify Stop, expiry, app inactivity, relay loss and re-arm behavior before broader gesture trials. Record exact metadata and results using Q's plan and the hardware template.

Saved TV recovery uses only the stored token; it never silently falls back to pairing. If unavailable, unlock the phone, check network/permissions, then reconnect or pair explicitly. Forget disconnects and removes both the saved selection and security record. A deletion failure retains the identity so deletion can be retried.

Pending gates

Physical TV pairing/TLS/key behavior; phone lock, wake and relaunch; watch sleep/inactivity; calibration and direction precision/recall; false triggers; battery; VoiceOver and layouts; signed install and archive privacy report. No app icons, App Store listing, distribution, trademark clearance or compatibility certification is completed by this integration.

Keep Q's original dated plan as a planning snapshot. Its demo-only observations describe the earlier worktree; the integration validation and privacy audit describe this build. Only later measured device evidence can close hardware gates.