Files
workouts/CHANGELOG.md
T
rzen d5915a9552 Add HIIT watch runner, rest-time setting, and HealthKit watch auto-launch
- Redesign the watch app into an active-workout runner: a root gate shows the
  in-progress workout's exercises or prompts to start one on iPhone, and each
  exercise runs as a horizontally-paged HIIT cycle (count-up work, count-down
  rest with final-three-second haptics + auto-advance, One More / Done on the
  last set). Replaces the old history list.
- Add a configurable rest-between-sets duration in iPhone Settings (default 45s),
  synced to the watch over WatchConnectivity.
- Launch the watch app into the session when a workout starts on the phone via
  HealthKit (startWatchApp); the watch runs an HKWorkoutSession for foreground
  runtime and ends it when the workout finishes. Adds the HealthKit entitlement +
  Health usage strings on both targets and WKBackgroundModes on the watch.

Claude-Session: https://claude.ai/code/session_018gg69MaUetDNzWzBXisfMV
2026-06-19 16:16:44 -04:00

40 lines
2.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Changelog
All notable changes to this project are documented here.
## June 2026
- Redesigned the Apple Watch app into a focused workout runner: it opens directly
on the active workout's exercise list (or prompts you to start one on iPhone),
and each exercise runs as a horizontally-paged HIIT cycle — a count-up work
phase, swipe to a count-down rest that pings once per second in the final three
seconds then auto-advances to the next set, and **One More** / **Done** buttons
on the final set.
- Added a configurable rest-between-sets duration (iPhone Settings, default 45s),
synced to the watch over WatchConnectivity.
- Starting a workout on the iPhone now launches the Apple Watch app straight into
the session via HealthKit (a one-time Health permission); the watch holds an
`HKWorkoutSession` to stay active while you train and releases it when the
workout finishes.
- New app icon: a tilted dumbbell on a purple gradient, full-bleed across iOS and
Watch (replaces the teal circular mark).
- **2.0** — Re-platformed persistence onto an iCloud Drive document architecture:
JSON files in iCloud Drive are now the sole source of truth, with a rebuildable
SwiftData cache populated by an `NSMetadataQuery` observer. Removed
CloudKit/`NSPersistentCloudKitContainer` and the App-Group store.
- Rebuilt the Apple Watch sync on a new WatchConnectivity bridge keyed by stable
ULIDs (the phone is the sole writer of iCloud Drive).
- Migrated the project to XcodeGen; iOS 26 / watchOS 26, Swift 6 strict
concurrency.
- Splits ship as an on-demand machine-based starter routine (Upper Body, Core,
Lower Body) at 4×10 with sensible starting weights.
- Stored exercise/log durations as integer seconds (was a `Date` epoch hack).
- Fixed: workout marked complete on creation, an undismissable delete dialog,
toolbar buttons hidden by nested navigation stacks, and a placeholder
"Settings coming soon" row.
- Fixed: tapping an exercise in a workout log pushed the wrong screen (a
duplicate of the split list) with the exercise detail hidden underneath — a
single row tap was navigating twice. Caused by stacking two
`navigationDestination` modifiers on the log list; rows now use a single
destination-based link.