Skip to content

Kai v2.0.0

Choose a tag to compare

@gertybot gertybot released this 28 Sep 09:27
· 50 commits to main since this release

The Garmin skill moves to garminconnect 0.3.x and gets safer login. This is a breaking release for Garmin users: read Upgrading from v1.x. TrainingPeaks, Strava and Kai's instructions are unchanged.

Breaking changes

  • Python 3.12 or newer for the Garmin skill (was 3.10). On older systems use uv venv --python 3.12; the README shows how.
  • garminconnect 0.3.x (was pinned to 0.2.38). A plain pip install garminconnect no longer breaks the skill, and the dependency on the retired garth login is gone.
  • You must log in to Garmin once more. Tokens saved by v1.x are in a different format and can't be reused. garmin_auth.py status recognises them and tells you.
  • garmin_auth.py login --password is removed, and a password in config.json is ignored with a warning. Use the prompt, --password-stdin or GARMIN_PASSWORD.
  • Anything of yours that calls the Garmin scripts must use the project's .venv/bin/python3, not the system Python.

What's new

  • Password prompt (#6): login asks for your password and any MFA code on the terminal (hidden input). The password is never stored; only session tokens are kept (garmin_tokens.json, 600 in a 700 folder).
  • No terminal, no hang: in an agent's shell, login stops with "run this yourself" instead of waiting or asking for the password in chat. AGENTS.md now tells Kai never to ask for it.
  • Port to 0.3.x (#5): verified against a live account. All 34 script cases give the same output structure as on 0.2.38 (32 byte-identical; the other two differ by 1 ms in timestamps and by data that changed during the day).
  • GARMIN_TOKEN_DIR keeps tokens somewhere else.
  • Offline tests for the login code (.venv/bin/python3 -m unittest discover -s tests), and a rewritten install.sh.
  • README: upgrade guide, requirements table, uv instructions and a privacy note on passwords.

Known issues

  • FIT downloads are saved as a ZIP, so analyze/parse on them fails (#15). This also happens on v1.x. GPX downloads work.
  • The Hermes Agent and Codex setups are still untested against live installs.
  • Skill symlinks need Linux or macOS (or WSL).
  • TrainingPeaks (cookie auth) and Garmin (community library) use unofficial interfaces and can break or be rate-limited.

Full changelog: v1.1.0...v2.0.0