49 lines
1.7 KiB
Markdown
49 lines
1.7 KiB
Markdown
# 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
|