# Step 8 Performance/State Round 1 ## Coverage - Reviewed and patched: - `iphone/Werkout_ios/DataStore.swift` - `iphone/Werkout_ios/Views/WorkoutDetail/WorkoutDetailView.swift` - `iphone/Werkout_ios/Views/WorkoutDetail/ExerciseListView.swift` - `WekoutThotViewer/WekoutThotViewer/ContentView.swift` - `iphone/Werkout_ios/BridgeModule.swift` - `iphone/Werkout_ios/BridgeModule+Watch.swift` - `iphone/Werkout_ios/BridgeModule+Timer.swift` - `iphone/Werkout_watch Watch App/WatchWorkout.swift` - Validation run: - `./scripts/smoke/smoke_all.sh` ## Fixes 1. Coalesced concurrent `fetchAllData` requests - `DataStore` now queues completion handlers while a fetch is active to prevent overlapping network fan-out and state churn. 2. Reduced AVPlayer churn in iOS workout detail - Reuses current player for same URL by seeking to start instead of recreating `AVPlayer` each time exercise/video updates. 3. Reduced AVPlayer churn in iOS exercise preview sheet - Added preview URL tracking; same URL now replays without allocating a new player. 4. Reduced AVPlayer churn in tvOS content loop - Same URL replay now seeks/replays existing player rather than recreating. 5. Capped queued watch messages on iOS bridge - Added queue cap to prevent unbounded growth while watch is disconnected. 6. Added queue fallback for send failures - Failed reachable send now re-queues payload for later delivery. 7. Improved timer power behavior - Added timer tolerance to workout/exercise timers. 8. Fixed watch heart-rate loop early-return behavior - Non-heart sample types now `continue` instead of exiting handler early. ## Validation - Smoke suite passed: - token scan - SharedCore tests - iOS/watchOS/tvOS builds