8f69497b24
The propped-up iPhone now runs the real ExerciseProgressView for a live watch workout instead of a read-only mirror, and the live-run channel is symmetric — either device can drive the flow and the other follows. Each page transition is classified human / auto / remote: only human transitions (swipe, Start, One More, swipe-back reset) are broadcast and recorded by the actor; auto-advances (rest / timed-work countdown) record locally but aren't sent, since both devices reach them independently off the shared wall-clock anchors; an applied remote frame jumps the page without re-recording or re-broadcasting. That rule is also what stops an echo loop. - PhoneConnectivityBridge gains sendLiveProgress/sendLiveEnded (the missing phone->watch direction); WatchConnectivityBridge receives frames into an observable liveIncoming via a new didReceiveMessage route. Both share one increasing per-run version sequence so the stale-frame guard works across the two devices' counters. - Both ExerciseProgressViews gain an incomingFrame input + applyIncoming (syncing setCount for a remote One More); the iPhone one gains the liveSnapshot/broadcast machinery the watch already had. - New LiveRunCoverView wraps the real driver for the cover (resolves the workout, persists via SyncEngine, wires the live channel + close); ContentView presents it; LiveProgressMirrorView is removed. Claude-Session: https://claude.ai/code/session_01SCv7zvGFcKy47KSTnTLxRe
60 lines
3.7 KiB
Markdown
60 lines
3.7 KiB
Markdown
**June 2026**
|
||
|
||
Prop your iPhone up during an Apple Watch workout and it now runs the same live flow side by side — Ready → work/rest → Finish with running timers — and you can drive from either device: swipe ahead, finish a set, or add one on whichever is closer, and the other follows along. Automatic moves, like a rest timer running out, advance both devices on their own.
|
||
|
||
Editing an exercise or split on iPhone now steps the Apple Watch out of that workout, showing it as "Editing on iPhone" until you're done — so the watch never keeps running an exercise whose plan you're changing.
|
||
|
||
The app now wears its signature purple: it's the accent color throughout, and a completed exercise is marked with a purple check. In-progress exercises now read as a neutral gray.
|
||
|
||
Tapping an exercise on iPhone now opens a paged workout run — the same Ready → work/rest → Finish flow as the Apple Watch, with rep sets counting up, timed sets and rests counting down and auto-advancing, plus haptics.
|
||
|
||
The exercise detail and edit screen moved behind an Edit swipe on the trailing edge; the leading swipe still completes a set.
|
||
|
||
The iPhone screen now stays awake the whole time the app is open, so a propped-up phone never sleeps during a workout.
|
||
|
||
The Apple Watch is now a focused workout runner: it opens on the active workout's exercises (or prompts you to start one on iPhone) and lists every in-progress workout at the root.
|
||
|
||
Each watch exercise runs as a paged Ready → work/rest → Finish flow — count-up work, count-down rests with haptics and auto-advance, One More, and a Done that fires automatically after a countdown.
|
||
|
||
Added configurable rest-between-sets and Auto-Finish countdown durations in iPhone Settings, synced to the watch.
|
||
|
||
Starting a workout on iPhone now launches the Apple Watch straight into the session.
|
||
|
||
Apple Watch set progress is now reliable — a finished set is never un-counted — and reopening an exercise resumes at the first unfinished set instead of restarting at set 1.
|
||
|
||
Fixed Apple Watch work/rest timers freezing when you lowered your wrist.
|
||
|
||
Progress made on the Apple Watch now appears on open iPhone screens in real time.
|
||
|
||
The iPhone app is now iPhone-only; it was inadvertently available on iPad.
|
||
|
||
New app icon: a tilted dumbbell on a purple gradient, replacing the teal circular mark.
|
||
|
||
Starter splits are now a curated machine-based routine (Upper Body, Core, Lower Body) at 4×10 with sensible starting weights.
|
||
|
||
Fixed the exercise set-progress grid not appearing on the first frame.
|
||
|
||
Fixed tapping an exercise in a workout log opening the wrong screen.
|
||
|
||
**2.0** — Re-platformed sync onto iCloud Drive: your workouts now live as files in iCloud Drive, replacing CloudKit.
|
||
|
||
Fixed new workouts being marked complete the moment they were created.
|
||
|
||
Fixed an undismissable delete confirmation dialog.
|
||
|
||
Fixed toolbar buttons being hidden behind nested navigation.
|
||
|
||
Removed a placeholder "Settings coming soon" row.
|
||
|
||
**January 2026**
|
||
|
||
Added real-time sync between iPhone and Apple Watch over WatchConnectivity (workouts, splits, exercises, and logs), with workout-log and exercise-progress views on the watch.
|
||
|
||
Moved Splits into Settings, accessed via a gear button; the main screen became a single Workout Logs view.
|
||
|
||
Added an exercise screen with set-by-set progress tracking, a weight-progression chart, read-only Plan and Notes tiles with dedicated Edit screens, and auto-dismiss when you finish the last set.
|
||
|
||
Updated the app icons.
|
||
|
||
Initial workout tracker for iPhone and Apple Watch: create splits, pick exercises filtered by the current split, and log sets, reps, and weight — with iCloud (CloudKit) sync, a tab-based interface, an SF Symbols icon picker for splits, bundled starter exercise libraries (bodyweight and Planet Fitness), and an About section.
|