Richer power curves
icu_get_power_curves can now cover a date range (start_date/end_date), a season, or up to five windows compared in one call (periods). Each key duration carries the activity, date and best W/kg, the curve runs to 6 hours, and the response adds your CP / W' / Pmax / FTP models, VO2max estimate and MAP. The new icu_get_seasons lists your seasons and their curve IDs (s0 is the current one). Thanks to @yokuha (#169).
Edit your notes and activities
icu_update_activity_message and icu_delete_activity_message change or remove your own notes on an activity. Deleting leaves a "(deleted)" placeholder, as in the web UI. icu_update_activity can now also write distance, carbs, sub-type, race flag and tags, plus a fields option for anything else writable. Thanks to @yokuha (#165, #168).
Fixes and platform
icu_get_athlete_profile and icu_list_athletes now read weight and date of birth from the fields the API actually sends. The Docker image moves to Python 3.14 and is rebuilt weekly, and its lockfile picks up security fixes, including an updated certifi root bundle.
The server now has 72 tools: 69 in the default safe mode, 63 in none.
Full Changelog: v5.7.1...v5.8.0