Repository navigation
Kai v2.3.1
Bug fix release: tyre mileage tracking now uses the athlete's own local date, not UTC. Additive: no commands, paths or credentials change from v2.3.0.
Fixed
-
tyre-mileage.shcompared a tyre'sfitted_dateagainst activities' UTC timestamps instead of the athlete's own local date (#22):- East of UTC (e.g. Sydney): a ride on the local morning of the fit day could have a UTC timestamp before UTC midnight of that date, so it was never fetched from Strava at all and silently missed.
- West of UTC (e.g. the Americas): a ride the evening before the fit day could fall after UTC midnight and be wrongly counted.
The fix compares each activity's own
start_date_local(which Strava already provides, per-activity, from its GPS-detected timezone) againstfitted_datedirectly — no machine or ledger timezone configuration needed. The filtering logic moved into a small, independently tested module (tyre_activity_filters.py); the Stravaafter=fetch keeps a generous margin for efficiency only, with the local-date compare doing the real filtering afterwards.Verified against live data: a real early-morning ride in Sydney that the old code fetched zero times is now correctly counted, and a same-fetch-window ride from the day before is still correctly excluded.
Known issues
- FIT downloads from the Garmin skill are saved as a ZIP, so
analyze/parseon them fails (#15). SECURITY.mdholds Kai's own agent rules on handling credentials, but GitHub treats that filename as the repo's vulnerability-reporting policy (#24; fix in review).- The Hermes Agent and Codex setups are still untested against live installs.
Full changelog: v2.3.0...v2.3.1