Fixed Garmin/Wahoo workout sync showing intervals without power targets — cycling workouts are now converted to structured Intervals.icu format before upload, ensuring head units display correct power targets for each interval
Fixed regenerating weekly plan resetting periodization cycle position — if you were 2 weeks into a 3:1 Build/Recovery cycle and regenerated, the plan would schedule 3 more build weeks before recovery instead of 1; the plan now respects your current position in the periodization cycle
Added recommended RPE and feel indicators to post-workout feedback form — after completing a workout, the feedback form now shows the expected RPE range (based on workout stimulus type) and recommended feel (based on your recovery score), helping you calibrate your perceived effort
Fixed weekly plan workout durations deviating significantly from configured availability — workouts that are too long or too short (beyond ±10%) are now caught and replaced with correctly-timed templates, so a 2h target won't produce a 2h58m or 1h30m workout
Fixed weekly plan assigning unrealistic pure Tempo workouts for long rides — rides over 2.5 hours are now automatically set to Endurance intensity, preventing physiologically impossible sessions like 4 hours of continuous tempo
Fixed weekly overview in daily email showing "Rest" for days that have scheduled workouts — today's planned workout now correctly appears in the week overview
Fixed post-workout analysis flagging normal heart rates as "quite high" — the AI now knows your LTHR and Max HR from Intervals.icu settings and interprets heart rate relative to your personal thresholds, not absolute values
Fixed race day email showing literal backslash-dash characters instead of line breaks in pacing and warmup sections
Fixed "Reset Calendar" not clearing existing workouts before regenerating — previously, resetting your plan would create duplicate workouts alongside the old ones instead of replacing them
Fixed weekly plan showing "Peak" phase while the dashboard shows "Taper" — near phase boundaries, the weekly plan and training plan timeline were calculating the phase independently from the dashboard, ignoring hysteresis. All surfaces now use the same central phase calculation
Fixed dashboard readiness status badge flickering between different labels during page load — the label now shows a loading state until the AI assessment is ready, then displays once with the final result
Fixed intermittent crash on Settings page on Mobile Safari caused by a hydration mismatch when swapping the theme picker skeleton for the actual dropdown — the page now waits for full hydration before rendering settings content
Fixed intermittent crash on TrainNow page on mobile browsers — simplified tooltip rendering to eliminate cascading state updates during page load that could overflow the call stack on devices with limited memory
Fixed stale eFTP used for athletes who train both indoors and outdoors — Intervals.icu maintains separate eFTP models per sport type, so the app now uses whichever was updated most recently instead of always defaulting to outdoor
Fixed AI thinking/reasoning text leaking into workout descriptions — internal chain-of-thought like calculation notes and self-corrections are now filtered out before displaying workouts
Fixed fitness trend chart showing tomorrow's date for athletes in western timezones — the dashboard now uses your local timezone instead of server UTC time to determine today's date
Fixed workout profile chart sometimes showing phantom intervals (e.g., Sweet Spot blocks) that don't exist in the actual workout text — when the AI generates a workout in a format the chart parser can't recognize, the chart is now hidden rather than showing misleading template-based intervals
Fixed Sweet Spot and Tempo power targets being 3-5% lower than expected — the wellness-based intensity reduction was incorrectly applied to all zones; it now only reduces threshold (Z4) and above, keeping moderate-intensity targets at their correct values
Fixed post-workout analysis overwriting your activity description in Intervals.icu — the IntervalCoach analysis is now appended below your existing notes instead of replacing them, and re-analyses update only the IntervalCoach section