v1.12.0 - Recover interrupted Garmin upgrades and keep Strava current
Eufy Sync now saves a Garmin replacement before deleting the weight-only reading it replaces. If the upload fails or the process stops, a later run can finish the replacement from the saved measurement.
- Garmin revisits older weight-only readings so body composition can arrive after the initial WiFi sync. Readings with different IDs must match within 120 seconds and 0.1 kg, with only one possible match.
- Profile selection checks raw and processed history together. Raw readings with missing or unknown profile IDs cannot slip through the selected profile's filter.
- Strava receives only the newest valid weight from each run. Backfill cannot overwrite a newer recorded weight with an older one.
--doctorchecks live Garmin and Strava access and shares the sync lock when refreshing tokens.- Scheduled runs retry once after 60 seconds when a temporary network failure is the only error.
The existing sync database is updated automatically. Configuration and the four-hour schedule stay the same.
All 447 tests passed on Linux, macOS, and Windows with Python 3.12, 3.13, and 3.14. Ruff and live Garmin and Strava connection checks also passed.