You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
C2ApiClient.get_results() was reading the wrong pagination key (meta.last_page instead
of the real meta.pagination.total_pages), so it silently stopped after the first 100 results
on every sync. Nightly incremental syncs rarely hit that ceiling so it went unnoticed, but a
historical backfill or a sync recovering from a long outage would have quietly dropped
everything past page 1. Fixed, and now covered by a regression test.
Added retries (3 attempts, short backoff) for transient C2 API failures — its results endpoint
returns occasional bare 500s in normal operation, seen firsthand in production, and one of
those was tripping the nightly sync's failure alert for no real reason.
backfill_rest_meters.py (see 0.11.0) now sources rest-distance values from a live re-fetch of
the full C2 history (matched by workout ID) instead of local raw_json — most historical
workouts here were CSV-imported and never had raw_json locally, so the previous approach only
recovered data for ~150 of 2559 workouts. Re-running it against the live API on top of this
release backfilled the rest correctly.