3ed7b9272c
Replace the bodyweight-catalog-derived seed (hardcoded 3x10, weight 0) with an explicit curated machine-based routine: Upper Body, Core, and Lower Body at 4x10 with starting weights taken from real workout logs. Decoupled from the shared exercise catalog YAML (still used by the exercise picker).
1.4 KiB
1.4 KiB
Changelog
All notable changes to this project are documented here.
June 2026
- 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
NSMetadataQueryobserver. Removed CloudKit/NSPersistentCloudKitContainerand 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
Dateepoch 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
navigationDestinationmodifiers on the log list; rows now use a single destination-based link.