Sync notifications now explain what happened at each service. Sending one weigh-in to Strava and Zwift no longer appears as two measurements, and a Garmin skip includes the date of the reading already there.
- Terminal summaries count completed syncs separately for Garmin, Strava, and Zwift.
- Partial failures produce one failure notification that also names the services that completed a sync.
- Dry-run sync failures stay in the terminal without sending notifications or changing the network-failure count.
- First-run and multiple-profile summaries retain partial results. Garmin logs use the correct local date and distinguish weight-only uploads from full body composition.
Verified with 517 tests covering service combinations, existing readings, retries, partial failures, dry runs, multiple profiles, backfills, repairs, and time-zone boundaries.
Full changes: v1.13.1...v1.13.2