| Commit message (Collapse) | Author | Age | |
|---|---|---|---|
| * | Add on-demand pprof profiling grouped by route | Martin Kagamino Lehoux | 2026-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 list | Martin Kagamino Lehoux | 2026-08-23 |
| | | |||
| * | Match official climbs once per lap on looping rides | Martin Kagamino Lehoux | 2026-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 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. | ||
| * | Require a 3.5% minimum slope on detected climbs, re-segmenting gentler stretches | Martin Kagamino Lehoux | 2026-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 gate | Martin Kagamino Lehoux | 2026-08-21 |
| | | |||
| * | Upgrade to Go 1.27 and apply go fix modernization | Martin Kagamino Lehoux | 2026-08-21 |
| | | |||
| * | docs: update TODO and ignore juggler local state | 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(ride): persist canonical moving time, preserve Strava reference | Martin Kagamino Lehoux | 2026-08-21 |
| | | |||
| * | feat(ride): compute moving time from GPX with backtest | Martin Kagamino Lehoux | 2026-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 filters | Martin Kagamino Lehoux | 2026-08-18 |
| | | |||
| * | fix: match official climbs outside detected bounds | Martin Kagamino Lehoux | 2026-08-18 |
| | | |||
| * | improved mise config | Martin Kagamino Lehoux | 2026-08-18 |
| | | |||
| * | update readme | Martin Kagamino Lehoux | 2026-08-17 |
| | | |||
| * | doc: update readme | Martin Kagamino Lehoux | 2026-08-17 |
| | | |||
| * | feat(web): improve ride detail climb profiles | Martin Kagamino Lehoux | 2026-08-16 |
| | | |||
| * | docs: clarify Cotacol step size | Martin Kagamino Lehoux | 2026-08-15 |
| | | |||
| * | chore: remove legacy chart rendering | Martin Kagamino Lehoux | 2026-08-11 |
| | | |||
| * | feat: Save Strava activities without routes | 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 |
| | | |||
| * | docs: Document ride backfill workflow | Martin Kagamino Lehoux | 2026-08-08 |
| | | |||
| * | refactor: Remove demo CLI | Martin Kagamino Lehoux | 2026-08-05 |
| | | |||
| * | refactor: Extract CLI and chart packages | Martin Kagamino Lehoux | 2026-08-05 |
| | | |||
| * | refactor: Remove obsolete Strava helpers and add mise tasks | Martin Kagamino Lehoux | 2026-08-05 |
| | | |||
| * | 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 |
| | | |||
| * | feat: Detect mountain pass crossings, name climbs after passes, render ride ↵ | Martin Kagamino Lehoux | 2026-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 conventions | Martin Kagamino Lehoux | 2026-08-01 |
| | | |||
| * | feat: Add Cotacol difficulty score for rides | Martin Kagamino Lehoux | 2026-08-01 |
| | | |||
| * | feat: Download mountain passes from centcols into SQLite | Martin Kagamino Lehoux | 2026-08-01 |
| | | |||
| * | Update README.md | Martin Kagamino Lehoux | 2025-07-20 |
| | | |||
| * | Cleanup parsing | Martin Kagamino Lehoux | 2025-04-21 |
| | | |||
| * | Add more data in climb & point | Martin Kagamino Lehoux | 2025-04-21 |
| | | |||
| * | chore: Add more examples from Garmin | Martin Kagamino Lehoux | 2024-07-29 |
| | | |||
| * | fix: One more iteration to find the best climb | Martin Kagamino Lehoux | 2024-07-28 |
| | | |||
| * | test: Add failing test for climb inside long false flat | Martin Kagamino Lehoux | 2024-07-28 |
| | | |||
| * | test: Add some test to fix behavior | Martin Kagamino Lehoux | 2024-07-28 |
| | | |||
| * | refactor: Improve readability | Martin Kagamino Lehoux | 2024-07-28 |
| | | |||
| * | perf: Precompute distance | Martin Kagamino Lehoux | 2024-07-28 |
| | | |||
| * | feat: Simple working version (but slow) | Martin Kagamino Lehoux | 2024-07-26 |
| | | |||
| * | feat: init | Martin Kagamino Lehoux | 2024-07-26 |
