Skip to content

Kai v2.4.0

Choose a tag to compare

@gertybot gertybot released this 01 Oct 02:42
· 19 commits to main since this release
c049d29

Garmin dashboards now work with no internet connection. Nothing to change when upgrading from v2.3.2, except for people who copy the Garmin skill into their own agent (see below).

image

Changed

  • Garmin dashboards no longer need the internet (#7). garmin_chart.py loaded Chart.js from cdn.jsdelivr.net, so a dashboard was blank offline and depended on a third-party server. Chart.js 4.4.0 is now bundled in skills/garmin-health-analysis/assets/ and embedded in each page, so a dashboard is one self-contained file that draws with no network access and still works after you move, email or archive it. Pages are about 200 KB larger.
  • What's bundled: the official Chart.js build from npm, unmodified (checked against the registry's integrity hash), plus its @kurkle/color dependency, both MIT-licensed. Their licences, a checksum file and a README with the update steps are in the same folder, and the root README's credits mention them.
  • If the bundled file is ever missing, the script warns and falls back to the CDN instead of failing.

If you copied the Garmin skill into your own agent rather than tracking main: copy the whole skills/garmin-health-analysis/ folder, including the new assets/. If only the scripts are copied, dashboards still work but fall back to the CDN with a warning.

How it was checked

11 new offline tests (140 in total), and seven deliberate breakages of the change, including a one-byte edit of the bundled library, each fail a test. Rendered in headless Chromium with every hostname blocked: the previous version's page drew nothing, the new one drew every stat card and chart. Only Chromium was tried, and with a synthetic dashboard rather than real Garmin data (the chart settings and the Chart.js version are unchanged).

Known issues

  • FIT files from indoor rides uploaded by third-party apps (seen with TrainingPeaks Virtual) can't be decoded by the FIT parser, and parse can't read the TCX export that does carry their data (#36).
  • The Hermes Agent and Codex setups are still untested against live installs.

Full changelog: v2.3.2...v2.4.0