Skip to content

Add terrain workouts and GPX course support#5

Merged
lookfirst merged 6 commits into
mainfrom
feat/terrain-workouts
Jul 20, 2026
Merged

Add terrain workouts and GPX course support#5
lookfirst merged 6 commits into
mainfrom
feat/terrain-workouts

Conversation

@lookfirst

Copy link
Copy Markdown
Collaborator

Summary

  • add selectable terrain workouts that automatically control trainer resistance from route grade
  • show synchronized top-down route and elevation views with progress, grade, resistance, climbing, descending, and completed loop/trip totals
  • support loop and out-and-back course models, including Granite Switchbacks, Prairie Roll, and the ten-mile Ridgeline Time Trial
  • import and export standards-based GPX workouts with duplicate detection and persistent custom course storage
  • save workout definitions and progress with ride sessions and preserve them through TCX import/export
  • restore trainers to 10% resistance when a session ends and keep workout selection compatible with connected shift controllers
  • store each bundled workout in an editable JSON definition under src/workouts

User impact

Riders can choose a course before starting, see its terrain immediately on the dashboard, and ride resistance-driven routes while tracking their position and elevation progress. The format also establishes a clean foundation for future custom workout editing and virtual shifting integration.

Validation

  • bun run ci
  • 176 tests passing
  • TypeScript check
  • production Vite build
  • local browser verification of the Ridgeline Time Trial in MPH mode with no console warnings or errors

@lookfirst
lookfirst merged commit e309354 into main Jul 20, 2026
1 check passed
@lookfirst
lookfirst deleted the feat/terrain-workouts branch July 20, 2026 05:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant