| Commit message (Collapse) | Author | Age | |
|---|---|---|---|
| * | Persist official climb attempts with climbs pages | Martin Kagamino Lehoux | 2026-09-13 |
| | | | | | | | | | | | | | | Record one attempt row per (ride, climb, occurrence) when a ride detail loads, snapshotting distance, elevation gain, slope, cotacol and attempt timestamps; a climbs-backfill CLI command seeds all existing rides. New /climbs list page aggregates attempts (medians computed in Go, best time as min duration) with sortable columns, and /climbs/{id} shows the median scalar stats, a median normalized elevation profile (50 steps over each attempt's own length), the full-precision recorded route of the median-distance attempt on an OSM map, and every attempt with time at second precision. | ||
| * | Preview: analyze a raw GPX or FIT file without persisting it | Martin Kagamino Lehoux | 2026-09-06 |
| | | |||
| * | Display Cotacol in the ride detail summary | Martin Kagamino Lehoux | 2026-09-01 |
| | | |||
| * | Rename rides.type to external_sport_type, infer bike type from Strava sport ↵ | Martin Kagamino Lehoux | 2026-08-28 |
| | | | | | type and display categories in UI | ||
| * | Add Strava external link to ride detail | Martin Kagamino Lehoux | 2026-08-27 |
| | | |||
| * | Use radio inputs and collapsible curation on ride detail | Martin Kagamino Lehoux | 2026-08-27 |
| | | | | | | | Replace dropdowns with vertical radio groups for bike and ride type. Make curation block collapsible (details/summary) collapsed by default and expanded when both categories are empty. | ||
| * | Lint & fix | Martin Kagamino Lehoux | 2026-08-27 |
| | | |||
| * | analytics grouping | Martin Kagamino Lehoux | 2026-08-25 |
| | | |||
| * | Ride type multiselect filter with a checkbox group across library and analytics | Martin Kagamino Lehoux | 2026-08-24 |
| | | |||
| * | Add type filtering, drop hard-coded filters and route filter, tune backtest | Martin Kagamino Lehoux | 2026-08-24 |
| | | |||
| * | Add data quality bulk categorisation page | Martin Kagamino Lehoux | 2026-08-24 |
| | | |||
| * | Add hardcore ride categorisation with bike and ride types | Martin Kagamino Lehoux | 2026-08-23 |
| | | |||
| * | Add normalized difficulty versus moving duration to analytics | Martin Kagamino Lehoux | 2026-08-23 |
| | | | | | | | | Extend analytics with a second scatter plotting Cotacol per 100 km against moving hours, keep speed versus Cotacol as first chart, render both canvases from shared points, open ride detail in a new tab on dot click, and keep all website copy in English. | ||
| * | Merge ride and rides packages into ride/store following mountain_pass structure | Martin Kagamino Lehoux | 2026-08-23 |
| | | | | | | | | | Consolidate persistence (Save, List, Backfill) into ride/store.go alongside ride.go/climb.go/moving_time.go, rename rides.Ride to ride.StoredRide to avoid collision with parsed ride.Ride, update all web/cli consumers and RideView to use named Ride field, adjust templates and regenerate templ files, and remove rides directory. | ||
| * | Add distance filter to analytics and go fix to the check gate | Martin Kagamino Lehoux | 2026-08-21 |
| | | |||
| * | Componentize and isolate the ride range filter | Martin Kagamino Lehoux | 2026-08-21 |
| | | |||
| * | Add global analytics scatter chart | Martin Kagamino Lehoux | 2026-08-21 |
| | | |||
| * | Add global analytics page shell and split server.go by concern | Martin Kagamino Lehoux | 2026-08-21 |
| | | |||
| * | feat(web): add sortable average speed column to ride library | Martin Kagamino Lehoux | 2026-08-21 |
| | | |||
| * | feat(ride): persist canonical moving time, preserve Strava reference | Martin Kagamino Lehoux | 2026-08-21 |
| | | |||
| * | feat(web): add ride library filters | Martin Kagamino Lehoux | 2026-08-18 |
| | | |||
| * | feat(web): display nearby passes on ride maps | Martin Kagamino Lehoux | 2026-08-17 |
| | | |||
| * | refactor(web): tidy climb matching controls | Martin Kagamino Lehoux | 2026-08-17 |
| | | |||
| * | feat(web): improve official climb profile | Martin Kagamino Lehoux | 2026-08-16 |
| | | |||
| * | refactor(web): establish JavaScript module tooling | Martin Kagamino Lehoux | 2026-08-16 |
| | | |||
| * | refactor(web): extract testable profile logic | Martin Kagamino Lehoux | 2026-08-16 |
| | | |||
| * | refactor(web): derive climb display groups | Martin Kagamino Lehoux | 2026-08-16 |
| | | |||
| * | refactor(web): split official climb profile script | Martin Kagamino Lehoux | 2026-08-16 |
| | | |||
| * | feat(web): improve ride detail climb profiles | Martin Kagamino Lehoux | 2026-08-16 |
| | | |||
| * | feat: add official climb workflow | Martin Kagamino Lehoux | 2026-08-14 |
| | | |||
| * | refactor(web): extract ride detail script | Martin Kagamino Lehoux | 2026-08-11 |
| | | |||
| * | refactor(web): centralize OKLCH palette | Martin Kagamino Lehoux | 2026-08-11 |
| | | |||
| * | refactor(web): extract embedded stylesheet | Martin Kagamino Lehoux | 2026-08-11 |
| | | |||
| * | feat: add interactive ride profile | Martin Kagamino Lehoux | 2026-08-11 |
| | | |||
| * | fix: Continue Strava import after invalid activities | Martin Kagamino Lehoux | 2026-08-11 |
| | | |||
| * | feat: Add Strava import progress | Martin Kagamino Lehoux | 2026-08-11 |
| | | |||
| * | feat: Add ride detail map | Martin Kagamino Lehoux | 2026-08-11 |
| | | |||
| * | feat: Add ride table sorting | Martin Kagamino Lehoux | 2026-08-07 |
| | | |||
| * | feat: Add web ride library with Strava sync | Martin Kagamino Lehoux | 2026-08-05 |
