| Commit message (Collapse) | Author | Age | |
|---|---|---|---|
| * | Extract climb detection into a dedicated climb package | Martin Kagamino Lehoux | 2026-08-27 |
| | | | | | | | | | | | | | | | | | | | | Move climb detection, slope, and Cotacol scoring out of ride into a new climb package that operates on a geometry-only Route (distances, elevations, coords). Ride embeds climb.Route and keeps its timing and telemetry columns. - climb.Detect returns []DetectedClimb (Climb + ride-absolute Start). - Climb owns its sliced geometry; indices are local, with Start reported at the detection boundary for absolute position. - Detected bounds use core.Interval; freeRegions claim suppression fixed. - ride no longer builds slices: ClimbFromDist/ClimbFromIndexes/climbFrom and ride.Climb/Interval/Range are removed; rideanalysis, mountain_pass MatchClimb, and web views are rewired to climb types. - New internal/routetest builds climb.Route from the ride DSL; ridetest reuses it and adds timestamps and telemetry. - Tests moved to climb (synthetic detection and difficulty) and kept in ride for GPX-example integration; ride.comparison detection coverage retained. - mountain_pass.nearestCrossing now reuses geo.Nearest. | ||
| * | Migrate cross-package ride test fixtures to the ridetest DSL | Martin Kagamino Lehoux | 2026-08-25 |
| | | | | | | | | | | | | Replace raw FromColumns 4-array blocks in official_climb, mountain_pass and web test rides with ridetest.MustRide strings. Add a Heading option to ridetest for routes whose points are spaced differently per kilometer (e.g. the mountain_pass expanded-bounds route at 0.1 degrees/km). Lap, direction and cluster tests in official_climb keep FromColumns: the DSL generates monotonic northeast coords and cannot express per-point loops or reversals. | ||
| * | Remove per-index ride accessors now dead after the component migration | Martin Kagamino Lehoux | 2026-08-25 |
| | | | | | | | | | The DistanceM, ElevationM, Coord, Timestamp and optional metric index accessors (HeartRateBpm, CadenceRpm, PowerW) are no longer used by any production code now that algorithms and consumers read ride components. Tests that asserted metric parsing and coordinates now read the component slices (Distances, Coords, HeartRates, Cadences, Powers). | ||
| * | Add type filtering, drop hard-coded filters and route filter, tune backtest | Martin Kagamino Lehoux | 2026-08-24 |
| | | |||
| * | 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 |
| | | |||
| * | Add global analytics page shell and split server.go by concern | Martin Kagamino Lehoux | 2026-08-21 |
| | | |||
| * | Use OSM as the single source of mountain passes | Martin Kagamino Lehoux | 2026-08-21 |
| | | | | | | | | Replace the centcols CSV download/enrichment pipeline with OSM PBF extraction as the primary (only) source: merge osmpass into mountain_pass, drop the centcols table and model fields, filter to named passes with elevation, and remove the centcols CLI flags. | ||
| * | 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 |
| | | |||
| * | feat(web): improve official climb profile | Martin Kagamino Lehoux | 2026-08-16 |
| | | |||
| * | fix(web): use Cotacol for climb difficulty | 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 |
| | | |||
| * | refactor: centralize test database setup | Martin Kagamino Lehoux | 2026-08-14 |
| | | |||
| * | feat: add official climb workflow | Martin Kagamino Lehoux | 2026-08-14 |
| | | |||
| * | refactor(web): extract ride detail script | Martin Kagamino Lehoux | 2026-08-11 |
| | | |||
| * | feat: add interactive ride profile | Martin Kagamino Lehoux | 2026-08-11 |
| | | |||
| * | feat: Save Strava activities without routes | 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 |
| | | |||
| * | perf: Load ride values from SQLite | Martin Kagamino Lehoux | 2026-08-08 |
| | | |||
| * | feat: Persist Cotacol ride values | Martin Kagamino Lehoux | 2026-08-08 |
| | | |||
| * | feat: Add ride table sorting | Martin Kagamino Lehoux | 2026-08-07 |
| | | |||
| * | refactor: Replace env config with atomic YAML | Martin Kagamino Lehoux | 2026-08-05 |
| | | |||
| * | feat: Add web ride library with Strava sync | Martin Kagamino Lehoux | 2026-08-05 |
