Files
workouts/CHANGELOG.md
T
rzen c44cdd3f90 Fix double navigation on workout log row tap
A row tap pushed twice: a value-based navigationDestination(for: String.self)
collided with the row's NavigationLink(value:), surfacing a duplicate split list
over the hidden exercise detail. Rows now use a destination-based NavigationLink,
leaving navigationDestination(item:) as the view's only destination.
2026-06-19 15:35:06 -04:00

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 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 on-demand starter data generated from the bundled exercise catalogs.
  • 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.