Fixed race-day detection for athletes in positive UTC timezones (e.g. Australia) — activity analysis emails were treating race day as "tomorrow" because the server used UTC instead of the athlete's local timezone, resulting in pre-race tips instead of post-race analysis
Fixed several additional timezone bugs found by improved linting: calendar goal countdown could be off by a day, taper recommendations used wrong race date, training gap detection compared UTC vs local dates, and weekly plan event grouping could place events in the wrong week
Fixed AI Coach showing all sessions completed when only one of multiple daily sessions is done — on multi-session days (e.g. Strength + Run), completing just one session no longer triggers "training done for the day" messaging