aboutsummaryrefslogtreecommitdiff
path: root/README.md
Commit message (Collapse)AuthorAge
* Add normalized difficulty versus moving duration to analyticsMartin Kagamino Lehoux2026-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 structureMartin Kagamino Lehoux2026-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.
* Require a 3.5% minimum slope on detected climbs, re-segmenting gentler stretchesMartin Kagamino Lehoux2026-08-21
| | | | | | | | | | | | | | A detected climb must now average at least 3.5% slope with re-segmentation: gentle drags are split into their qualifying steeper parts instead of being reported wholesale or dropped. Qualifying climbs keep their previous boundaries exactly; only regions whose classic best climb averages below the threshold get re-segmented (full-scan for the best qualifying sub-segment, found=false when none exists). QA: A/B across data/rides (362 rides) went from 137 to 133 climbs, 23 rides changed; the 7 fully-dropped rides were audited to contain zero qualifying sub-segments. Example-ride tests updated for the new behavior; the resolved "minimum slope" TODO was removed.
* Add distance filter to analytics and go fix to the check gateMartin Kagamino Lehoux2026-08-21
|
* 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
|
* 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(ride): persist canonical moving time, preserve Strava referenceMartin Kagamino Lehoux2026-08-21
|
* 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
|
* doc: update readmeMartin Kagamino Lehoux2026-08-17
|
* feat(web): improve ride detail climb profilesMartin Kagamino Lehoux2026-08-16
|
* docs: clarify Cotacol step sizeMartin Kagamino Lehoux2026-08-15
|
* chore: remove legacy chart renderingMartin Kagamino Lehoux2026-08-11
|
* feat: Save Strava activities without routesMartin Kagamino Lehoux2026-08-11
|
* feat: Add Strava import progressMartin Kagamino Lehoux2026-08-11
|
* feat: Add ride detail mapMartin Kagamino Lehoux2026-08-11
|
* docs: Document ride backfill workflowMartin Kagamino Lehoux2026-08-08
|
* refactor: Remove demo CLIMartin Kagamino Lehoux2026-08-05
|
* refactor: Extract CLI and chart packagesMartin Kagamino Lehoux2026-08-05
|
* refactor: Remove obsolete Strava helpers and add mise tasksMartin Kagamino Lehoux2026-08-05
|
* refactor: Replace env config with atomic YAMLMartin Kagamino Lehoux2026-08-05
|
* feat: Add web ride library with Strava syncMartin Kagamino Lehoux2026-08-05
|
* feat: Detect mountain pass crossings, name climbs after passes, render ride ↵Martin Kagamino Lehoux2026-08-03
| | | | | | | | | | charts - osmpass: extract mountain_pass=yes nodes from an OSM PBF, enrich centcols passes with OSM coordinates, resumable -fetch-osm download - mountain_pass: DetectCrossings for a ride, MatchClimb to name a climb after the pass it tops - ride: expose Points(), add Climb.Top() and Climb.Name - chart: -chart renders elevation profile with climb bands and pass markers - commands: -fetch-osm, -extract-osm, -import-cached, -enrich
* docs: Reformat README to project conventionsMartin Kagamino Lehoux2026-08-01
|
* feat: Add Cotacol difficulty score for ridesMartin Kagamino Lehoux2026-08-01
|
* feat: Download mountain passes from centcols into SQLiteMartin Kagamino Lehoux2026-08-01
|
* Update README.mdMartin Kagamino Lehoux2025-07-20
|
* Cleanup parsingMartin Kagamino Lehoux2025-04-21
|
* Add more data in climb & pointMartin Kagamino Lehoux2025-04-21
|
* chore: Add more examples from GarminMartin Kagamino Lehoux2024-07-29
|
* fix: One more iteration to find the best climbMartin Kagamino Lehoux2024-07-28
|
* test: Add failing test for climb inside long false flatMartin Kagamino Lehoux2024-07-28
|
* test: Add some test to fix behaviorMartin Kagamino Lehoux2024-07-28
|
* refactor: Improve readabilityMartin Kagamino Lehoux2024-07-28
|
* perf: Precompute distanceMartin Kagamino Lehoux2024-07-28
|
* feat: Simple working version (but slow)Martin Kagamino Lehoux2024-07-26
|
* feat: initMartin Kagamino Lehoux2024-07-26