Stabilize iOS/watchOS/tvOS apps and add cross-platform audit remediation

This commit is contained in:
Trey t
2026-02-11 12:54:40 -06:00
parent e40275e694
commit acce712261
77 changed files with 2940 additions and 765 deletions

View File

@@ -0,0 +1,48 @@
# 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