54 lines
2.4 KiB
Markdown
54 lines
2.4 KiB
Markdown
# 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:
|
||
- `Hollie’s 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 Tartt’s 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.
|