707d71eaf0
Tapping an in-progress exercise on the watch froze the app in an infinite SwiftUI re-render loop. WorkoutLogListView.body observed SwiftData two ways the iPhone list deliberately avoids: a @Query-bound Split, and a traversal of its `exercises` relationship during render (availableExercises). Reading an observed model's relationship inside body keeps the view perpetually subscribed and re-invalidating. Fix: fetch the split imperatively (not via @Query), gate the Add-Exercise affordances on the value-type doc.splitID, and evaluate availableExercises only from the picker sheet's closure. The list body now depends solely on the value-type working doc. Also remove the temporary on-screen diagnostics/PVDiag plumbing and restore PhaseTimerLayout and the dot-row animation that were dropped while debugging. Make the Ready? page always lead the exercise flow on both watch and iPhone (previously only for not-started exercises), so a resumed run can swipe back to it. A deliberate swipe back to Ready? resets the run; the transient paged TabView snap-to-0 on open is guarded by a settle gate plus an adjacent-swipe check, so an in-progress exercise lands on its set and is never reset on open. Claude-Session: https://claude.ai/code/session_01SCv7zvGFcKy47KSTnTLxRe