What's Changed
Added
- New menstrual-cycle write methods:
update_menstrual_daily_log(),update_menstrual_calendar(),init_menstrual_cycle_setup(),confirm_menstrual_period_start(), andupdate_menstrual_settings()— previously only reads (dayview/calendar/pregnancy snapshots) were supported; recording a daily log, editing period dates, running first-time cycle setup, or changing tracking settings required going through Garmin Connect's own UI. Payload shapes were checked against live requests where practical;init_menstrual_cycle_setup()/confirm_menstrual_period_start()request shapes come from the frontend and haven't been exercised live on an already-configured account, so treat those two with extra care. Writes are full snapshots, not field-level merges — see each method's docstring for exactly what gets cleared vs. preserved when a field is omitted. - New read methods alongside the writes:
get_menstrual_last_confirmed(),get_menstrual_cycle_summary(),get_menstrual_reports(). demo.py: interactive menu entries for all of the above (Hydration & Wellness category), consistent with every other write in the demo — no extra confirmation step beyond the normal input prompts.
Fixed
get_goals()silently returned[](HTTP 200, no error) for newer goal types — custom accumulation goals with a date range, created via the current Garmin Connect UI. Root cause:goal-service/goal/goalsrequires aSec-Fetch-Site: same-originheader for these goal types; browsers always send it on a same-origin request, but this client didn't send anySec-Fetch-*headers before. (#431, #434)update_menstrual_settings()could clobber fields the caller didn't pass — it now GETs the current profile and merges the caller's keys onto the existinguserMenstrualCycleSettingsbefore the PUT, so omitted tracking flags are preserved.- Two formatting-only nits from the menstrual-writes change (an unnecessary line wrap in a demo error message and in
get_menstrual_reports()'s URL construction).
Docs
- README method/category counts updated to 154+ across 14 categories (Hydration & Wellness now 20 methods, up from 12).