📅 Daily Log — January 8, 2026
🧠 Context / Focus for Today
Enhance AI chat UX with progress tracking and time estimation. Improve AI coach reliability and workout scheduling with weekend preferences and better structured workout generation. Add multi-sport workout day preferences for personalized training plans. Improve navigation with Training Settings link.
✔️ Things I Got Done Today
AI Chat Progress Timer & Time Estimation
Progress Bar & Timer Display
- Added progress bar showing elapsed vs estimated time during AI requests:
- Visual progress indicator with elapsed/estimated time display
- Time estimation based on intent type:
- Plans: 15s base + 5s per week (scales with plan duration)
- Edits: Fixed 10s estimate
- Coach: Fixed 8s estimate
- Response time displayed after completion for performance tracking
- Rotating phase messages synchronized with progress phases
Intent Detection & Duration Parsing
- Enhanced intent detection to extract plan duration:
- Added
extractDurationWeeks()function to parse duration from user input - Supports various formats ("4 weeks", "12 week plan", "8w", etc.)
- Enables accurate time estimation for plan generation
- Improved intent classification for better UX
- Added
State Management
- Filtered stale loading messages from localStorage:
- Prevents stale state from persisting across sessions
- Cleans up loading messages on component mount
- Improved chat state reliability
AI Coach Reliability & Workout Scheduling Improvements
Weekend Scheduling Preference
- Added weekend preference for long runs and key workouts:
- AI coach now prefers weekends for important training sessions
- Better aligns with typical training schedules
- Improves workout placement logic
Structured Workout Generation
- Improved coach API for better structured workout generation:
- Enhanced JSON parsing reliability
- Disabled Gemini tool calling (JSON parsing produces better results)
- Better error handling and validation
- More consistent workout structure output
Chat History Filtering
- Filter stale loading messages from Supabase chat history:
- Prevents old loading states from appearing in chat
- Cleaner chat history display
- Improved user experience
Multi-Sport Workout Day Preferences
Database Schema
- Added
preferred_workout_daysfield to athlete profile:- JSONB column storing sport-specific day preferences
- Supports run, bike, and swim day preferences
- Flexible structure for future sport additions
- Database migration with proper schema
Settings UI
- Created settings page for workout day preferences:
- User-friendly interface to select preferred days for each sport
- Visual day selection (checkboxes for each day of week)
- Sport-specific preferences (run/bike/swim)
- Real-time updates to athlete profile
- Integrated into
/settingspage
AI Coach Integration
- Updated AI coach to enforce workout day preferences:
- AI coach MUST schedule sport-specific workouts on user's preferred days
- Validates workout placement against preferences
- More personalized training plan generation
- Better alignment with user's schedule and preferences
PRD Documentation
- Created PRD for structured bike/swim workout generation:
- Comprehensive product requirements document
- Defines structured workout format for cycling and swimming
- Outlines implementation approach and requirements
- Guides future development work
Navigation Improvements
Training Settings Link
- Added "Training Settings" link to user profile dropdown:
- Quick access to
/settingspage - Improved navigation flow
- Better discoverability of settings
- Consistent with other navigation patterns
- Quick access to
🚧 In Progress
- AI chat UX improvements (progress timer complete, additional enhancements planned)
- AI coach reliability (scheduling improvements complete, additional optimizations planned)
- Multi-sport preferences (core functionality complete, additional sports and features planned)
- Structured workout generation (PRD complete, implementation planned)
🎯 Targets for Tomorrow
- Continue AI chat enhancements — add more context-aware features and polish
- Implement structured bike/swim workouts — based on PRD requirements
- Expand multi-sport support — add more sports and preference options
- Improve AI coach scheduling — additional optimizations and edge case handling
🤔 Notes / Observations
- Progress timer significantly improves user experience during AI requests
- Time estimation helps set proper expectations for plan generation
- Weekend scheduling preference aligns better with typical training schedules
- Multi-sport workout day preferences enable highly personalized training plans
- Training Settings link improves navigation and discoverability
- PRD provides clear roadmap for structured bike/swim workout implementation
- All changes maintain backward compatibility and include proper migrations
- Strong focus on user experience and personalization
📈 Momentum Score: 9.0 / 10
Excellent day with significant UX improvements and personalization features. Progress timer makes AI interactions more transparent and engaging. AI coach reliability improvements enhance workout scheduling quality. Multi-sport preferences enable highly personalized training plans. Navigation improvements improve discoverability. Strong progress on user experience and personalization features that directly impact user satisfaction.