Files
WerkoutIOS/docs/step12_hardware_disconnect_pass.md

54 lines
2.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Step 12 Hardware Disconnect/Reconnect Pass
## Date
- 2026-02-11 (UTC timestamp used during check: `2026-02-11T18:45:42Z`)
## Coverage Attempted
- Device inventory:
- `xcrun xcdevice list`
- iOS destination eligibility:
- `xcodebuild -project iphone/Werkout_ios.xcodeproj -scheme 'Werkout_ios' -showdestinations`
- watchOS destination eligibility:
- `xcodebuild -project iphone/Werkout_ios.xcodeproj -scheme 'Werkout_watch Watch App' -showdestinations`
## Findings
1. Hardware watch pass could not be executed from this environment.
- Evidence:
- watch scheme showed simulator destinations only under available destinations.
- the only physical watch destination was ineligible:
- `Hollies Apple Watch` with error indicating watchOS version mismatch/unknown against deployment target `watchOS 9.4`.
2. Physical iOS devices are present/eligible.
- Evidence:
- available iOS hardware destinations included:
- `Gary Tartts iPad`
- `ihollieb`
- `Peeeeeeeeellll`
3. Physical watch pairing/connectivity state is the blocking dependency for true hardware disconnect/reconnect validation.
## What Was Added For Immediate Re-Run
- Hardware run script:
- `scripts/hardware/watch_disconnect_hardware_pass.sh`
- Script behavior:
- validates eligible physical iOS + watch destinations
- performs hardware-targeted preflight builds (`CODE_SIGNING_ALLOWED=NO`)
- emits manual disconnect/reconnect checklist and pass criteria artifact
## Manual Hardware Scenario (Pending Once Watch Is Eligible)
1. Start iOS + watch apps on physical paired devices.
2. Start workout from iOS.
3. Break transport (Bluetooth off on iPhone or Airplane Mode on watch) for ~30s.
4. While disconnected, trigger multiple state changes on iOS.
5. Reconnect transport and verify watch converges to latest state without crash/replay loop.
6. Repeat for two disconnect/reconnect cycles.
## Current Status
- Blocked on eligible physical watch destination.
- Queue/replay behavior is covered by automated tests in `SharedCore/Tests/SharedCoreWatchOSTests/BoundedFIFOQueueTests.swift`, but physical transport behavior remains unverified until watch eligibility is fixed.
- In this Codex shell, scripted destination probing/building is additionally constrained by sandboxed write restrictions to Xcode/SwiftPM cache paths; manual run on your local terminal is expected once watch hardware is eligible.