Add per-split rest length and hands-free auto-advance flow

Two per-split settings, with the global Settings values as defaults:

- restSeconds: Int? — per-split rest, used between sets and (in flow) between
  exercises; nil falls back to the global default.
- autoAdvance: Bool? — flow mode: finishing an exercise rests, then opens the
  next one hands-free, all the way through the split.

Both are optional, snapshotted onto WorkoutDocument at the start sites (no live
split link), and not schema-bumped — same degradation pattern as activityType.

A thin RunFlowView wrapper (iOS + watch) owns the on-screen log and swaps it via
.id(currentLogID) on hand-off, so the per-exercise ExerciseProgressView stays
per-logID and untouched; the between-exercise rest reuses the existing .rest
countdown as the terminal page. The mirror reuses the per-logID live channel:
the wrapper suppresses the boundary .ended teardown so it follows across
exercises, and ContentView re-keys the cover on frame.logID — no sync-bridge
changes.

Morning Wake-Up ships as a flowing 45s-work / 15s-rest routine.

New Rest & Pacing section in the split editor exposes both controls.
This commit is contained in:
2026-07-09 15:18:13 -04:00
parent 0f5f11e5e2
commit 90deb582fe
18 changed files with 468 additions and 92 deletions
+8 -5
View File
@@ -7,11 +7,14 @@ your own iCloud Drive.
## Key Features
- **Workout splits** — organize exercises into reusable routines with custom
colors, icons, and an activity type (strength, HIIT, cardio, …). Built-in
starter splits (Upper Body / Core / Lower Body
machine routines, plus an equipment-free **Bodyweight Core** circuit with its
own warm-up) appear automatically on first launch; editing one makes it your
own copy, and deleted starters can be restored from Settings.
colors, icons, and an activity type (strength, HIIT, cardio, …). Each split can
set its own rest time (overriding the app-wide default) and turn on **Auto-Advance**
to flow hands-free from one exercise to the next, resting automatically between them
(the **Morning Wake-Up** starter split ships this way). Built-in starter splits
(Upper Body / Core / Lower Body machine routines, plus an equipment-free
**Bodyweight Core** circuit with its own warm-up) appear automatically on first
launch; editing one makes it your own copy, and deleted starters can be restored
from Settings.
- **Exercise library** — a bundled library of 47 exercises to populate your
splits, authored in `Exercise Library/` with per-exercise setup, cues,
mistakes, progressions, and an anatomically-rigged 3D stick-figure visual