aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* Componentize and isolate the ride range filterMartin Kagamino Lehoux2026-08-21
|
* Add global analytics scatter chartMartin Kagamino Lehoux2026-08-21
|
* Add global analytics page shell and split server.go by concernMartin Kagamino Lehoux2026-08-21
|
* fix: ride detail summary stats fit on one lineMartin Kagamino Lehoux2026-08-21
| | | | | | | The summary dl used a 3-column grid, so the 4th stat (elevation) wrapped to a second line. Switch to flex with space-around and a smaller gap so all four stats share one line while still wrapping gracefully on very narrow screens.
* Upgrade to Go 1.27 and apply go fix modernizationMartin Kagamino Lehoux2026-08-21
|
* docs: update TODO and ignore juggler local stateMartin Kagamino Lehoux2026-08-21
|
* feat: bound climb detection by matched official climbsMartin Kagamino Lehoux2026-08-21
| | | | | | | | | | | | | | | Detected climbs no longer absorb an official climb's range: official climbs matched to the route by coordinates claim their stored start/end range, and climb detection now runs only in the free regions around them. On ride 263 a single absorbed Cat 2 ascent is split so creating a first-half official climb lets the second half be detected on its own. - ride: add Range, freeRegions, and DetectClimbs(claimed); exclude claimed ranges so a climb never overlaps one - official_climb: MatchClimb now bounds-matches purely by coordinates without needing a detected climb; extract geo.Nearest shared helper - rideanalysis: Analyze builds claimed climbs from matched official climbs and detects only in free regions; render official vs unmatched climbs separately
* refactor(ride): express category thresholds as inclusive min scoresMartin Kagamino Lehoux2026-08-21
|
* refactor(ride,mountain_pass): remove dead code identified by deadcode analyzerMartin Kagamino Lehoux2026-08-21
|
* refactor(ride,rideanalysis): replace magic numbers with named constantsMartin Kagamino Lehoux2026-08-21
|
* Use OSM as the single source of mountain passesMartin Kagamino Lehoux2026-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 libraryMartin Kagamino Lehoux2026-08-21
|
* feat(ride): persist canonical moving time, preserve Strava referenceMartin Kagamino Lehoux2026-08-21
|
* feat(ride): skip rides without track points in backtestMartin Kagamino Lehoux2026-08-20
|
* chore(bench): exclude rides with low moving time ratioMartin Kagamino Lehoux2026-08-20
|
* chore(bench): exclude rides under 10 kmMartin Kagamino Lehoux2026-08-20
|
* chore(bench): exclude short ridesMartin Kagamino Lehoux2026-08-20
|
* fix(ride): use effort metrics for moving timeMartin Kagamino Lehoux2026-08-20
|
* fix(ride): improve moving time against StravaMartin Kagamino Lehoux2026-08-20
|
* feat(ride): compute moving time from GPX with backtestMartin Kagamino Lehoux2026-08-20
| | | | | | | | Add ride.MovingTime, a speed-threshold algorithm over track timestamps. Add a -backtest CLI command comparing computed values against Strava's reference across all stored rides, with a percentile distribution summary. Baseline: mean err 3.9%, p50 1.6, p75 4.6, p90 8.4, p95 12.1, p99 44.9.
* feat(web): add ride library filtersMartin Kagamino Lehoux2026-08-18
|
* fix: match official climbs outside detected boundsMartin Kagamino Lehoux2026-08-18
|
* improved mise configMartin Kagamino Lehoux2026-08-18
|
* update readmeMartin Kagamino Lehoux2026-08-17
|
* feat(web): mark climb boundaries on ride mapsMartin Kagamino Lehoux2026-08-17
|
* feat(web): display nearby passes on ride mapsMartin Kagamino Lehoux2026-08-17
|
* feat(web): add official climb chart gridsMartin Kagamino Lehoux2026-08-17
|
* refactor(web): tidy climb matching controlsMartin Kagamino Lehoux2026-08-17
|
* doc: update readmeMartin Kagamino Lehoux2026-08-17
|
* refactor(web): split ride detail rendering concernsMartin Kagamino Lehoux2026-08-17
|
* feat(web): refine ride profile climb labelsMartin Kagamino Lehoux2026-08-17
|
* chore(web): add Stylelint CSS checksMartin Kagamino Lehoux2026-08-16
|
* feat(web): improve official climb profileMartin Kagamino Lehoux2026-08-16
|
* fix(web): use Cotacol for climb difficultyMartin Kagamino Lehoux2026-08-16
|
* refactor(web): migrate browser code to TypeScriptMartin Kagamino Lehoux2026-08-16
|
* refactor(web): split ride detail JavaScriptMartin Kagamino Lehoux2026-08-16
|
* refactor(web): establish JavaScript module toolingMartin Kagamino Lehoux2026-08-16
|
* refactor(web): extract testable profile logicMartin Kagamino Lehoux2026-08-16
|
* refactor(web): derive climb display groupsMartin Kagamino Lehoux2026-08-16
|
* refactor(web): split official climb profile scriptMartin Kagamino Lehoux2026-08-16
|
* feat(web): improve ride detail climb profilesMartin Kagamino Lehoux2026-08-16
|
* docs: clarify Cotacol step sizeMartin Kagamino Lehoux2026-08-15
|
* refactor: centralize test database setupMartin Kagamino Lehoux2026-08-14
|
* refactor: extract ride analysisMartin Kagamino Lehoux2026-08-14
|
* refactor: split official climb concernsMartin Kagamino Lehoux2026-08-14
|
* feat: add official climb workflowMartin Kagamino Lehoux2026-08-14
|
* refactor(web): extract ride detail scriptMartin Kagamino Lehoux2026-08-11
|
* refactor(web): centralize OKLCH paletteMartin Kagamino Lehoux2026-08-11
|
* refactor(web): extract embedded stylesheetMartin Kagamino Lehoux2026-08-11
|
* feat: move GPX storage under dataMartin Kagamino Lehoux2026-08-11
|