1.5 KiB
1.5 KiB
Step 10 Reliability Round 2
Coverage
- Reviewed and patched:
iphone/Werkout_ios/BridgeModule+Watch.swiftiphone/Werkout_ios/BridgeModule+WorkoutActions.swiftiphone/Werkout_ios/CurrentWorkoutInfo.swiftiphone/Werkout_watch Watch App/WatchDelegate.swiftiphone/Werkout_ios/UserStore.swift
- Validation:
./scripts/smoke/smoke_all.sh- iOS/tvOS analyzer passes
Fixes
-
Main-thread state safety for watch session callbacks
- Wrapped
didReceiveMessageDataaction handling andactivationDidCompleteWithstate transitions on main. - Prevents shared bridge state (
@Publishedworkout/watch properties + queued message mutations) from being changed off-main.
- Wrapped
-
Removed dead closure path that could retain
BridgeModule- Removed unused
CurrentWorkoutInfo.completeclosure and its assignment inBridgeModule+WorkoutActions.start(workout:). - Reduces lifecycle risk and removes dead behavior.
- Removed unused
-
HealthKit authorization crash hardening on watch launch
- Replaced force-unwrapped quantity types with guarded optional binding in
WatchDelegate. - Logs and exits cleanly if required HealthKit quantity types are unavailable.
- Replaced force-unwrapped quantity types with guarded optional binding in
-
Cross-target notification compile stability
- Updated
UserStore.logoutto postNotification.Name("CreatedNewWorkout")directly. - Avoids reliance on an iOS-only extension file when
UserStoreis compiled in tvOS target.
- Updated
Validation
- Smoke suite passed:
- token scan
- SharedCore tests
- iOS/watchOS/tvOS builds