Back to Developer Logs

Build Log — March 25, 2026

Build Log — March 25, 2026

What We Shipped

Strava On-Demand Enrichment

Three commits built out a proper on-demand enrichment pipeline for Strava activities. The foundation (3011e44e) adds the ability to pull detailed laps, heart rate zones, and segment efforts from Strava on demand — not just at sync time. A follow-up (e7db4101) wires Strava's heartRateZones data directly into the AI Coach's zone analysis, so coaching conversations now reference your actual zone distribution instead of estimating from averages. The final piece (55c0ccef) connects it all to workout detail views, meaning athletes see enriched data right where they're reviewing their sessions.

Projected Training Load

PR #594 (b5748f6a) adds projected training load curves to the admin metrics charts. If you're looking at an athlete's CTL/ATL/TSB dashboard, you can now see where their load is heading based on scheduled upcoming work — not just where it's been. Useful for catching overreach before it happens.

Goal Race Context Guardrails

Two fixes tightened how the AI Coach references goal races. Historical workout recaps no longer mention a future goal race (13fe5dea) — if you're reviewing a run from three months ago, the coach won't awkwardly reference your upcoming marathon. And goal race context now limits its window to three months before race day (93b2452d), keeping the coaching relevant and timely instead of referencing a race that's eight months out.

Admin Chart Polish

Four commits (2545e2f6, 58f98e43, 52d19b2b, 21ba1103, b81136d7, b324f1b1) iteratively refined the admin metrics chart x-axis. Date labels went through vertical text, angled rotation, proper margin spacing, and centered translateX(-50%) positioning until they finally look right at every viewport width. Sometimes the small stuff takes the most iterations.

Mobile-Responsive Admin

The admin impersonate page (8eb90ff8) got a responsive overhaul — usable on mobile now instead of being a desktop-only tool.

The Takeaway

Thirteen commits. The Strava enrichment work is the standout — it closes the gap between what Strava knows about your workout and what Flow State can surface to the AI Coach. Projected training load is the kind of forward-looking feature that separates a training log from a training platform. And the goal race guardrails are a good example of AI coaching maturity: knowing when not to mention something is just as important as knowing what to say.