aboutsummaryrefslogtreecommitdiff
path: root/README.md
Commit message (Collapse)AuthorAge
* Verify downloaded France OSM PBF against geofabrik's published MD5Martin Kagamino Lehoux2026-08-24
|
* Ride type multiselect filter with a checkbox group across library and analyticsMartin Kagamino Lehoux2026-08-24
|
* Add progress bars to the long-running CLI processes (backtest, backfill, ↵Martin Kagamino Lehoux2026-08-24
| | | | extract-osm)
* readmeMartin Kagamino Lehoux2026-08-24
|
* Document ride categorisation featureMartin Kagamino Lehoux2026-08-24
|
* readmeMartin Kagamino Lehoux2026-08-24
|
* readmeMartin Kagamino Lehoux2026-08-24
|
* Add on-demand pprof profiling grouped by routeMartin Kagamino Lehoux2026-08-23
| | | | Expose pprof at /debug/pprof via -pprof flag, tag each handler with runtime/pprof route label, add handleRoute helper to avoid repeating patterns, and document UI workflow in README.
* Apply go fix modernizations and refresh TODO listMartin Kagamino Lehoux2026-08-23
|
* Match official climbs once per lap on looping ridesMartin Kagamino Lehoux2026-08-23
| | | | | | | | | | | | Official climb matching now returns all non-overlapping occurrences per ride instead of only the globally nearest pair. Each lap is detected by clustering contiguous points within the endpoint radius and pairing each start cluster with the first end cluster inside its window, preserving direction. The ride analysis aggregates all matches and sorts claimed ranges before excluding them from auto-detection. Fixes the case where a looping ride only showed one instance of a saved climb while the user expected one per repetition.
* 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
|