Developer Logs
March 2026
Build Log — March 10, 2026
Quiet day — triggered a fresh CI run to verify pipeline health after the weekend's recovery UI work.
We Reverse Engineered FORM Goggles So You Don't Need a Subscription
FORM makes the best swim goggles on the market. The subscription to sync workouts from platforms you already pay for? Less impressive. We spent one afternoon reverse engineering the Bluetooth protocol. Here's what we found — and the open-source library we built.
Build Log — March 9, 2026
Three commits: recovery widget night-of date fix, Garmin webhook Disk IO reduction, and overnight desktop recovery tooltips via CASE.
Build Log — March 8, 2026
Quick accuracy fix: CTL label corrected from 42-day to 28-day across the mobile metrics view to match the actual API calculation.
Build Log — March 7, 2026
AI coach discoverability overhaul with mobile FAB, cycling recap now uses power/HR/speed, training load timezone fix, and a due date picker for planning tasks.
Build Log — March 6, 2026
Massive workout recap overhaul: structured JSON output, plan-context-aware AI, BYOA routing, 40-lap support, and a pile of mobile AI coach UX fixes.
Build Log — March 5, 2026
Swim recap pacing fixed to /100m, Share Recap unlocked for all activity types, and a cleaner AI Coach tab after removing the redundant TrainingStatusCard.
Build Log — March 4, 2026
Power zones for cycling, goal impact on share cards, nutrition photo upload to the AI coach, compliance shading, and a wave of share card polish.
Build Log — March 3, 2026
Massive day: shareable AI workout recaps, Renpho smart scale integration, mobile nav overhaul with bottom bar and pull-to-refresh, personalized metrics guide, PWA install email drip, Sentry error alerting, and 30+ bug fixes.
Build Log — March 2, 2026
Big day: Banister HR Reserve TRIMP, Garmin LTHR personalization, AI workout recaps at sync, welcome email sequence, TrainingPeaks import, Fitbit OAuth, and a full sweep of mobile coach and recovery fixes.
Build Log — March 1, 2026
Mobile polish marathon: Fitbit body metrics, compliance badges, calendar drag handles, recovery tile overhaul, and 35+ commits fixing scroll, layout, and data bugs across the mobile experience.
February 2026
Build Log — February 28, 2026
Mobile-first Saturday: recovery metrics, interactive tour, AI coach chat in onboarding, Strava elevation fix, and 15+ direct commits to main.
Build Log — February 27, 2026
Mobile bug bash: 8 PRs shipped covering Oura/Whoop/Polar integrations, mobile nav, coach layout, and pace zone fixes.
Build Log — February 26, 2026
Fixed a pile of mobile UX bugs: workout detail modal, metric labels, profile sheet scroll, coach input, and more.
Build Log — February 25, 2026
Shipped a full 9-step onboarding tour with replay support, Garmin recent-refresh cron, Mission Control agent card rework, mobile settings expansion, and closed out a bunch of sleep score and interval bugs.
Build Log — February 24, 2026
Big polish day: brand logos across the app, coach subpanels moved to modals, Stripe hardening, and landing page BYOA section.
Build Log — February 23, 2026
Mobile redesign with Pencil MCP, Polar AccessLink OAuth, cookie consent, billing webhooks, paywall fixes, and week view drag-and-drop.
Build Log — February 21, 2026
Admin subscription bypass via is_admin flag.
Build Log — February 20, 2026
BYOA Phase 3 ships, massive settings/preferences UX overhaul, GitHub activity heatmap, referral source tracking, and a localStorage security fix.
Build Log — February 19, 2026
BYOA agent API shipped (Phase 1 + 2), Mission Control goes real-time, referral program promoted to header, and a pile of UX fixes.
Build Log — February 18, 2026
Massive polish day — week view alignment, AI Coach memory slide-over, API docs upgrade, live feed fixes, mobile UX overhaul, and security hardening across auth routes and rate limiting.
Build Log — February 17, 2026
Full coach intelligence stack — personality layer, memory system, weekly summaries, goals & tracking, proactive nudges — plus Mission Control live feed and naming cleanup.
Build Log — February 16, 2026
Public REST API with key management, automated code reviewer agent, risk policy CI gates, remediation loop, Mission Control Brain panel, and OpenAPI docs.
Build Log — February 14, 2026
Cross-source activity merging replaces skip-on-dedup. 80+ sport types mapped for Garmin and Strava. Sync source indicators on workout cards. HIIT/cardio no longer false-matches planned runs.
Build Log — February 13, 2026
Agent API v1, realtime calendar, conversational onboarding, and a full infrastructure rebrand
Build Log — February 12, 2026
Workout quality scoring lands with dashboard trends. New admin dashboard, calendar shortcuts, sleep insights, and a sub-agent skill system inspired by OpenAI's best practices.
Build Log — February 11, 2026
The AI Coach gets long-term memory. RAG goes from v1 to v4 in one day — cross-conversation embeddings, hybrid BM25+semantic search, Cohere reranking, and adaptive retrieval. New update_training_zones tool. 5,500+ more lines of dead code removed.
Build Log — February 10, 2026
Biggest cleanup day in project history. AI SDK v2 replaces legacy coach routes (-4,691 lines). adapt_plan ships with proactive recovery coaching. Kanban gets color-coded labels. 37 commits, 6,600+ lines of dead code removed.
Build Log — February 9, 2026
Mission Control dashboard ships. adapt_plan tool gives the AI Coach real recovery-based plan modification. Massive codebase refactor: 20+ dead modules removed, TrainingCalendarApp decomposed from monolith to hooks.
Build Log — February 8, 2026
AI Coach gets 9 new tools with multi-turn calling. Email OTP passwordless login. Optimistic UI updates via SSE. Self-hosted CI runner deployed.
Build Log — February 7, 2026
Product tour for new users with Driver.js. Landing page mobile redesign. Intervals.icu export fixes for distance-based workouts. 1,736 ESLint warnings eliminated. Early access middleware.
Build Log — February 6, 2026
Security hardening for public beta. Goal time input drives training paces. Plan engine gets duration and quality workout controls. 464 ESLint errors eliminated.
Build Log — February 5, 2026
Landing page overhaul with coach demo, integrations section, and mobile polish. Early access gate shipped. Garmin reliability improvements with retry logic and health data monitoring.
Build Log — February 4, 2026
Pace system overhaul: zero hardcoded paces, zone references everywhere. 19 PRs merged — new single-day record. Server-side normalizer catches AI omissions.
Build Log — February 3, 2026
Plan engine overhaul: day scheduling, distance caps, progressive taper. Forced tool calling for AI coach. Streaming route fixes. Strava API approved.
Build Log — February 2, 2026
Bug fix day: timezone issues, AI Coach hallucinations, Garmin error UX with retry/reconnect, expanded Kanban Agent API, and 187 TypeScript errors resolved.
Build Log — February 1, 2026
Light day: CI/CD improvements with GitHub Action OAuth and repairing 6 failing tests across 3 test files.
January 2026
Build Log — January 31, 2026
Analytics infrastructure day: admin dashboard for user growth and AI costs, client-side event tracking, Supabase RPC type safety fixes, and UI polish for non-distance sports.
Build Log — January 30, 2026
Automation and integration day: Intervals.icu auto-sync, Planning Board cloud sync, quick-add API for external automations, compound learning scripts, and Garmin token race condition fixes.
Build Log — January 29, 2026
Major feature day: Import AI Plans, Training Readiness Indicator, Mobile UX redesign, Intensity Metrics, and Intervals.icu integration fixes.
Build Log — January 28, 2026
Strava cron sync, AI coach conversation threads, swim workout visualizations, bike power zones, and Vercel Pro upgrade.
Build Log — January 27, 2026
Native Garmin WorkoutRepeatStep support, AI coach overlay on calendar, workout time/distance estimates, and major UX cleanup.
Build Log — January 26, 2026
Added Intervals.icu integration for Zwift workout sync, production security hardening, health metrics enhancements, and Garmin reconnect feature.
Build Log — January 25, 2026
Major milestone: Received production API access from Garmin! Also fixed Strava OAuth on mobile devices.
Build Log — January 24, 2026
Added Garmin device name display in activity stats modal for better activity context.
Build Log — January 23, 2026
Enhanced Garmin activity metrics extraction, fixed training load authentication and field mapping issues, improved sport-specific displays, and responded to Garmin team for production access.
Build Log — January 22, 2026
10x faster Garmin sync with batched DB operations, OAuth cookie fixes, activity deduplication, pricing modal with subscription plans, and workout card UX improvements.
Build Log — January 21, 2026
Garmin date range import modal, OAuth state fixes, authentication improvements, training plan persistence, and AI chat duplicate context fix.
Build Log — January 20, 2026
Goal race event selector for settings, improved error messaging across settings and Stripe integration, and comprehensive Stripe test suite with 56 tests.
Build Log — January 19, 2026
Garmin API branding compliance and major CI/CD infrastructure improvements. Added merge conflict prevention with CODEOWNERS, Husky hooks, and enhanced workflows.
Build Log — January 18, 2026
Major test coverage expansion day. Added 200+ new test cases across Garmin integration, AI coach, and UI components.
Build Log — January 17, 2026
Focused day on improving AI coach data quality through structured_data validation. Fixed regression where structured workouts were accepted without proper structured_data.
Build Log — January 16, 2026
Major focus on AI coach streaming responses for ChatGPT-like experience. Cycling power zones UI. Configuration improvements. UX enhancements. Applied for Garmin API production access.
Build Log — January 15, 2026
Major focus on test coverage expansion (53% → 80%) and AI preference learning system. Garmin partner verification test suite. Workout modification tracking. Smart workout notes parsing. Multi-sport training support (bike/swim) and 10K plans. Developer experience improvements.
Build Log — January 14, 2026
Major feature: Prebuilt training plans catalog with generation and preview. Daily health metrics display on calendar. Bulk delete for AI-created workouts. AI tool enhancements for workout updates. Developer experience improvements.
Build Log — January 13, 2026
Major feature additions: AI model comparison system, comprehensive testing infrastructure, enhanced Strava data fetching, SSE streaming for Garmin sync, recovery-based training features, and webhook-first sync strategy.
Build Log — January 12, 2026
Garmin integration reliability improvements with webhook fallback, timezone fixes, and workout matching accuracy. Preserve app-created workouts when clearing imported data. Fix type errors and improve OAuth scope handling.
Build Log — January 9, 2026
Pre-production hardening with security improvements, validation, and mobile fixes. Resolved critical Garmin duplicate sync issues. Added bulk delete functionality and E2E testing infrastructure. Enhanced AI Coach reliability.
Build Log — January 8, 2026
Enhanced AI chat UX with progress tracking and time estimation. Improved AI coach reliability and workout scheduling. Added multi-sport workout day preferences for personalized training plans.
Build Log – 2026-01-07
Major schema refactor to improve type safety and platform sync state management. Enhance AI coach with training history integration and events feature. Improve chat UI with context-aware progress phases. Add normalized description field for better workout matching.
Build Log – 2026-01-06
Add TrainingPeaks import feature for migrating athletes. Improve AI Coach chat UI with better scrolling, expand/collapse, and visual feedback. Fix AI suggestion bugs and timezone issues. Add disconnect options for integrations. C Corp approved. Applied for company credit card.
Build Log – 2026-01-05
Expand AI Coach to multi-sport support (cycling and swimming). Build Health Metrics Dashboard with Garmin data visualization. Add workout normalization and deduplication. Improve Garmin sync status UI. Enhance planning board with task archiving. Add unified activity format and real-time Garmin download. C Corp approved. Applied for company credit card.
Build Log – 2026-01-01
File for C corp incorporation via Stripe Atlas for Flow State. Add PWA support with offline capabilities. Improve UI consistency with calendar grid and workout card fixes.
December 2025
Build Log – 2025-12-31
Implement Google Calendar sync integration for seamless workout scheduling. Add bulk accept/dismiss functionality for AI-suggested workouts to improve workflow efficiency. Sync user preferences from localStorage to Supabase for cross-device consistency.
Build Log – 2025-12-30
Redesign landing page with minimal aesthetic. Implement cross-device sync for user preferences and pace zones. Enable AI Coach access to user's personalized pace zones. Migrate localStorage-only data to Supabase for cloud sync.
Build Log – 2025-12-29
Improve mobile navigation with inline views and bottom sheet chat. Integrate sharing UI with modal improvements. Add AIChatSheet component for better mobile AI coach experience. Enhance mobile calendar with week strip navigation.
Build Log – 2025-12-28
Review and refine sharing feature implementation. Test sharing workflows end-to-end. Address any edge cases or bugs discovered during testing. Prepare for production deployment of sharing features.
Build Log – 2025-12-27
Implement comprehensive workout sharing feature with link-based and direct user-to-user sharing. Create public profile system for sharing workouts. Build sharing infrastructure with secure token generation and validation.
Build Log – 2025-12-26
Implement comprehensive UI/UX improvements for accessibility and mobile experience. Launch new Slate Minimal + Ocean Blue design system. Enhance calendar layout with full-width design and centered navigation. Improve dashboard usability with collapsible sections.
Build Log – 2025-12-25
Implement Phase 4 platform breadth features including Wahoo integration, enhanced Strava sync, brick workout builder, and taper wizard. Add comprehensive unit test coverage for core training logic modules. Fix critical bugs including Strava OAuth loop and compliance indicator display.
Build Log – 2025-12-24
Complete subscription and Stripe integration for payment processing. Add Google Analytics tracking for user behavior insights. Move week summary to dashboard for better visibility. Finalize mobile UX refinements and calendar improvements.
Build Log – 2025-12-23
Enhance mobile UX with improved navigation, view switching, and calendar interactions. Implement week summary component with training metrics. Add duplicate workout feature for quick workout creation. Begin scheduled time migration for better workout timing.
Build Log – 2025-12-22
Implement Smarter AI Coach Phase 1 with gold examples, compliance tracking, recovery integration, and plan adaptation. Optimize database performance with RLS improvements and fix function security. Create athlete profile system for personalized coaching.
Build Log – 2025-12-21
Complete Phase 3 with multi-sport support and advanced target types. Implement Phase 4 production readiness features including error handling, rate limiting, and branding compliance. Prepare comprehensive documentation for Garmin production key application submission.
Build Log – 2025-12-20
Complete Training API V2 implementation with workout templates, creation endpoints, and training schedules. Finish Garmin integration roadmap with backfill, intelligent matching, and auto-sync. Enhance AI integration to generate structured workout data compatible with Garmin devices.
Build Log – 2025-12-19
Build production-ready Garmin webhook infrastructure for real-time data sync, implement user permission management, and create structured storage for Garmin Health API data. Focus on meeting Garmin production API requirements for webhooks, permissions, and deregistration.
Build Log – 2025-12-18
Stabilize CI/CD infrastructure, resolve React 19 compatibility issues, set up GitHub Actions for automated testing, and improve Garmin Training API payload handling with comprehensive regression tests.
Build Log – 2025-12-17
Stabilize the Garmin export pipeline end-to-end, confirm reliable planned workout delivery, and reduce uncertainty around Garmin sync behavior before shifting focus to AI model experimentation.
Build Log – 2025-12-16
Stabilize Garmin export reliability, resolve FIT SDK failures, and realign the platform around a true planned → completed workout lifecycle with Garmin Connect.
Build Log – 2025-12-15
Unblock development tooling, continue stabilizing the Garmin export pipeline, and reduce friction in local development so execution can stay fast and focused.
Build Log – 2025-12-12
Stabilize planning workflows, validate merge-based task updates, and continue Garmin reliability and FIT export work.
Build Log – 2025-12-11
Garmin workout export pipeline refactoring, canonical builder implementation, and planning board simplification.
Build Log – 2025-12-10
Planning board automation fixes, clarifying Garmin debug routes, FIT export thread prep, and creating the new /blog system.
Build Log – 2025-12-09
Garmin sync hardening, webhook debugging, cron limits, and FIT export planning.
Build Log — December 8, 2025
Implemented Garmin webhook infrastructure with activity sync and duplicate prevention. Added support for multiple webhook payload formats. Fixed Next.js route params for Next.js 15+.
Build Log — December 6, 2025
Upgraded Next.js to 16.0.7 for security patch. Ensured application security and stability.
Build Log — December 5, 2025
Merged multiple pull requests with fixes and features. Added new workout builder modal and calendar integration. Fixed Garmin import OAuth endpoint issues. Fixed dark mode styling and modal cutoff prevention.
Build Log — December 4, 2025
Added training plans API. Fixed Garmin token refresh endpoint. Fixed auto-sync to Garmin. Updated documentation and ErrorBoundary component.
Build Log — December 3, 2025
Implemented Garmin workout export/sync with Training API and activity matching. Added automatic Garmin sync with auto-export, cron jobs, and webhook support. Fixed day-of-week calculation for workout creation.
Build Log — December 2, 2025
Major Garmin OAuth integration implementation. Replaced username/password auth with OAuth tokens. Added Garmin connection UI component. Fixed Garmin API endpoints and parameters.
Build Log — December 1, 2025
Improved AI Suggest Week functionality to generate truly different workouts. Fixed calendar navigation and skeleton loader issues. Enhanced AI coach system prompt with clearer structure and gold examples.
November 2025
Build Log — November 28, 2025
Added Strava reconnect feature for scope errors. Fixed loading skeleton flash issues. Improved error detection in Strava connection. Fixed reconnect button visibility.
Build Log — November 26, 2025
Added Strava OAuth integration with automatic sync. Added OAuth authentication support. Added drag-and-drop for workouts and AI suggestions. Improved dark mode readability.
Build Log — November 25, 2025
Added legal pages (Privacy Policy, Terms of Service). Added contact form modal. Added Vercel Speed Insights. Improved modal UX with Escape key support. Fixed workout plan date defaults.
Build Log — November 24, 2025
Rebranded to Flow State Endurance. Added landing page. Optimized AI coach for 4-week plan generation. Added user profile dropdown with avatar upload. Improved calendar navigation.
Build Log — November 20, 2025
Optimized UI scale for laptop screens. Improved distance precision handling. Fixed AI Coach header spacing. Hid scrollbars while preserving scroll functionality.
Build Log — November 19, 2025
Fixed FIT export precision issues with floating-point handling. Added safety checks for structured data rounding. Updated documentation and API routes.
Build Log — November 18, 2025
Major FIT/TCX export improvements for Garmin and TrainingPeaks compatibility. Fixed FIT file generation with proper structure, validation, and encoding. Added dark mode toggle. Improved AI Coach functionality.
Build Log — November 17, 2025
Refined Google AI integration with proper API version and model selection. Optimized system prompt further to prevent JSON cutoff. Added clear chat button. Fixed API key detection.
Build Log — November 16, 2025
Added Google AI Studio (Gemini) support as AI provider. Optimized system prompt to reduce token usage. Fixed token limits for all AI providers.
Build Log — November 14, 2025
Improved AI Coach chat interface with persistence and memory. Refactored codebase into smaller modules. Enhanced error handling and diagnostics. Improved AI suggestions display on calendar.
Build Log — November 13, 2025
Major feature development day. Implemented Garmin Connect import/export with FIT and TCX formats. Added AI Coach integration with workout ingestion. Created structured workout builder similar to TrainingPeaks.
Build Log — November 12, 2025
Added Garmin Connect import feature with UI and API routes. Added manual workout creation form. Fixed calendar display and error handling. Resolved TypeScript configuration issues.
Build Log — November 6, 2025
Implemented Supabase authentication and user data isolation. Added Garmin Connect sync tooling. Restyled calendar interface to mirror TrainingPeaks. Fixed code bugs and improved AI preview flow.
Build Log — November 5, 2025
Initial project setup and foundation. Integrated Supabase for data persistence. Set up TypeScript configuration and fixed path aliases. Created README documentation.