Owain Jarrett owain
  • Joined on 2025-11-29
owain pushed to main at owain/MileVault 2026-06-08 13:20:00 +01:00
0dd6eba589 docs: refresh CLAUDE.md (beat service, TanStack Query, env vars, no tests)
0e4bc7b444 Multi-user via PocketID: account linking, group gating, admin user management
Compare 2 commits »
owain pushed to main at owain/MileVault 2026-06-08 12:25:12 +01:00
bc4d68da07 Fix avg_hr_day: remove dead averageHeartRate lookup; add max_hr_day from UDS export
owain pushed to main at owain/MileVault 2026-06-08 12:11:57 +01:00
2d94f99356 Fix activity dedup crash: MultipleResultsFound on same-day same-sport activities
owain pushed to main at owain/MileVault 2026-06-08 10:17:55 +01:00
f5d91cf8ae Fix Garmin full export import: UDSFile health data and nested zip FIT files
owain pushed to main at owain/MileVault 2026-06-08 01:20:54 +01:00
2ea691085f Fix VO2 arrow: tip lands at exact value on arc centre-line, base points outward
owain pushed to main at owain/MileVault 2026-06-08 01:15:26 +01:00
bb9e8c59f4 VO2 max gauge: Garmin/Cooper Institute thresholds, add Superior category
owain pushed to main at owain/MileVault 2026-06-08 00:56:47 +01:00
b6f185d5e8 Fix VO2 gauge: large-arc-flag must always be 0 for a 180° gauge
owain pushed to main at owain/MileVault 2026-06-08 00:49:18 +01:00
5c5877c792 Rework VO2 max gauge: full-colour ACSM bands, white inward arrow, no fill arc
owain pushed to main at owain/MileVault 2026-06-08 00:41:32 +01:00
5256bd448c Fix VO2 gauge arc direction: sweep=1 for upper (top) semicircle
owain pushed to main at owain/MileVault 2026-06-08 00:38:55 +01:00
221b2cd333 Fix VO2 max gauge: correct semicircle geometry, fixed 30-70 range, arrow pointer
owain pushed to main at owain/MileVault 2026-06-08 00:28:40 +01:00
45ff01f740 Fix health metrics API limit to support 5yr trend and snapshot navigation
owain pushed to main at owain/MileVault 2026-06-07 23:49:10 +01:00
8d304545a3 Health page: VO2 max gauge, layout improvements, 3Y/5Y trends, biological sex profile
owain pushed to main at owain/MileVault 2026-06-07 23:18:06 +01:00
70c7e5c0a8 Fix VO2 max extraction: values nested under entry['generic'] not top-level
owain pushed to main at owain/MileVault 2026-06-07 23:13:45 +01:00
093aa67e58 Log maxmet first entry structure to identify vo2max field name
owain pushed to main at owain/MileVault 2026-06-07 23:01:34 +01:00
546fdd96b5 Fix VO2 max sync: robust fallback when maxmet range returns non-list or valueless entries
owain pushed to main at owain/MileVault 2026-06-07 22:35:40 +01:00
0bb1f9bc1e Fetch full VO2 max history via maxmet/daily range query
owain pushed to main at owain/MileVault 2026-06-07 22:16:10 +01:00
854d4ed7cb Fix VO2 max extraction from training_status.mostRecentVO2Max.generic
owain pushed to main at owain/MileVault 2026-06-07 21:59:07 +01:00
41a39ec3c7 Try training_status and stats_and_body for VO2 max (debug logging)
owain pushed to main at owain/MileVault 2026-06-07 21:38:41 +01:00
367ae4e8f7 Switch VO2 max source to get_max_metrics (maxmet/daily endpoint)
owain pushed to main at owain/MileVault 2026-06-07 21:29:20 +01:00
e440fb35dd Add debug logging for fitnessage API response