Changelog

New features, improvements, and fixes.

Shipping activity

2,339 contributions in the last year

NEW

Glucose API for CGM Data

  • CGM glucose data is now available through the VitalTrends REST API when blood glucose samples are synced from Apple Health.
  • Added a glucose analytics endpoint with average glucose, time in range, variability, AGP, daily aggregates, short-range raw points, and day-explorer context.
  • Added a paginated raw glucose readings endpoint so scripts, notebooks, and AI tools can inspect individual CGM samples.
  • Updated public API, Apple Health, and glucose documentation with the new routes and data-source notes.
IMPROVED

Platform, Docs, and Operations Updates

  • Strava connection entry points have been removed from the connection UI while the related background jobs and webhook paths continue to be hardened.
  • Login and routing now enforce the canonical host more consistently, reducing duplicate-host session and redirect edge cases.
  • Added per-user production database sync tooling, including make db-sync-users and remote sync scripts for targeted support work.
  • Expanded public and internal documentation for workouts, MCP, WHOOP, the API, architecture, and deployment.
  • Added database optimization research, baseline captures, benchmark results, and production migration notes to guide future performance work.
IMPROVED

Developer Workflow and Maintenance

  • Added a CI-parity make ci gate, GitHub Actions workflow, refreshed Mago baselines, and a tracked pre-push hook so merge readiness is checked consistently.
  • Consolidated DTO classes under the DataTransferObjects namespace to keep backend structure consistent.
  • Updated dependencies and fixed container git safe-directory handling for smoother local and Docker-based development.
  • Added pitch deck context, architecture notes, and scheduled task metadata so planning and operational context live with the repo.
  • Expanded test coverage across admin, auth, billing, Apple Health, Control Center, glucose, Oura, Strava, sport icons, and unified workouts.
NEW

Control Center Beta

  • Control Center is now the home page for logged-in members, bringing your connected devices into one daily view while it remains in beta.
  • It is designed to answer the practical daily questions: how ready you look today, what your data supports doing next, which sources agree or disagree, and which connections need attention.
  • Every cross-device claim is cached, method-versioned, and labeled with its source data so you can see what was used instead of treating the summary as a black box.
  • The original WHOOP, Oura, Apple Health, Withings, Hevy, and workout pages remain available from the navigation as deeper drill-down views while the new experience is calibrated.
IMPROVED

Accuracy and reliability improvements

  • Apple Health workouts now update correctly when re-synced, so route maps, elevation and other metrics always reflect the latest data from your iPhone.
  • Fixed workout route maps not appearing for some Apple Watch workouts.
  • Fixed Apple Health sleep totals being overcounted on nights when a device recorded both a summary and detailed sleep stages.
  • Improved WHOOP and Withings sync reliability, so connections recover on their own instead of stalling.
  • Readiness and insights date ranges are now accurate for members in timezones outside UTC.
  • Hevy volume trends now group workouts by your local date, so a late-evening session lands on the right day, week or month.
  • Apple Health pairing codes now expire 15 minutes after they're generated, with a live countdown and one-tap regeneration.
IMPROVED

Oura Dashboard Redesign

  • Sleep, Readiness and Temperature charts now show shaded zones and a line at your own baseline, so you can read where you stand at a glance without checking the numbers.
  • Days with no Oura reading now appear as a gap instead of a misleading drop to zero, and score charts use a fixed, honest scale so normal night-to-night variation stays readable.
  • Hovering the Sleep Score or Readiness chart now highlights the same day on the other, making the link between last night and today easy to follow.
  • Sleep Sessions are now grouped by day, with your main sleep leading each row and naps folded in beside it, replacing the long per-session list.
  • Added a plain-language daily summary of what your data leans toward, plus an info tooltip on every chart explaining what it measures and how to read a good or poor value.
  • Fixed the Distance and Targets chart so distance lines are no longer crushed by unrelated metrics, and Activity Time now reads in hours and minutes.
IMPROVED

WHOOP daily API now includes today

  • The WHOOP daily API now returns the current local-day row when WHOOP has live in-progress cycle data.
  • A new additive is_partial field marks rows that are still open or not fully scored, so existing API clients keep working while newer clients can handle in-progress data explicitly.
  • Closed historical rows keep the existing response shape and legacy date behavior, including cycle_start_date and cycle_end_date for explicit local boundaries.
NEW

Hevy is here

  • Your strength training now lives in VitalTrends. Connect Hevy and every workout, exercise, and set syncs in automatically.
  • A new Hevy section shows your training volume, your most worked muscle groups, and how often you actually hit the gym, alongside your sleep, recovery, and cardio.
  • Hevy sessions show up in the unified workout feed next to your WHOOP and Apple Health activities, so a lifting day no longer looks like a missing workout.
  • CSV export and the personal API now include your Hevy data, so you can pull it into your own tools or hand it to your AI assistant.
NEW

Oura Ring API

  • Your Oura Ring data is now available through the VitalTrends REST API with the same personal API key flow used for WHOOP, Withings, and Apple Health.
  • New endpoints expose daily sleep, sleep sessions, readiness, activity, workouts, SpO2, stress, resilience, and VO2 max.
  • The Oura API endpoints support pagination, date filtering, and user-scoped token authentication, so scripts and AI tools can query Oura trends directly.
NEW

Oura Ring Integration (Beta)

  • Connect your Oura Ring via OAuth to sync sleep score, sleep stages, readiness, HRV, resting heart rate, activity, steps, calories, workouts, SpO2, stress, resilience, and VO2 max.
  • A dedicated /oura dashboard with 12 charts shows your long-term Oura trends alongside the data you already have from WHOOP, Withings, and Apple Health.
  • Webhooks keep data current in near real-time once subscriptions are registered, with hourly catch-up as a safety net.
  • Limited beta: while we wait for Oura to approve a higher API allocation, connections are temporarily capped at 10 users. We will lift the cap as soon as Oura approves the increase.