| Commit message (Collapse) | Author | Age | |
|---|---|---|---|
| * | Apply go fix modernizations and refresh TODO list | Martin Kagamino Lehoux | 2026-08-23 |
| | | |||
| * | Handle Strava rate limiting with abort, retry time and daily usage display | Martin Kagamino Lehoux | 2026-08-23 |
| | | | | | | | | | | | | | | Strava sync for 167 rides exceeds the 100/15-min read limit (2 calls per ride). Previously a 429 was treated as a skipped ride, so every remaining ride also failed silently. Now GetJSON returns a typed RateLimitError with RetryAfter computed from Retry-After/Date and X-RateLimit headers (15-min window resets at :00/:15/:30/:45, daily at midnight UTC) and tracks Read/Overall usage. syncRides aborts on 429 with partial progress instead of skipping, and handleSync emits an SSE error with retry time, daily usage vs limit and structured rateLimit snapshot; progress and complete events also carry the snapshot for the UI to display. Frontend shows Read daily/15-min usage in progress details and on completion. | ||
| * | 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. | ||
| * | Add distance filter to analytics and go fix to the check gate | Martin Kagamino Lehoux | 2026-08-21 |
| | | |||
| * | Componentize and isolate the ride range filter | Martin Kagamino Lehoux | 2026-08-21 |
| | | |||
| * | Add global analytics scatter chart | Martin Kagamino Lehoux | 2026-08-21 |
| | | |||
| * | Add global analytics page shell and split server.go by concern | Martin Kagamino Lehoux | 2026-08-21 |
| | | |||
| * | fix: ride detail summary stats fit on one line | Martin Kagamino Lehoux | 2026-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 modernization | 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): mark climb boundaries on ride maps | Martin Kagamino Lehoux | 2026-08-17 |
| | | |||
| * | feat(web): display nearby passes on ride maps | Martin Kagamino Lehoux | 2026-08-17 |
| | | |||
| * | feat(web): add official climb chart grids | Martin Kagamino Lehoux | 2026-08-17 |
| | | |||
| * | refactor(web): tidy climb matching controls | Martin Kagamino Lehoux | 2026-08-17 |
| | | |||
| * | refactor(web): split ride detail rendering concerns | Martin Kagamino Lehoux | 2026-08-17 |
| | | |||
| * | feat(web): refine ride profile climb labels | Martin Kagamino Lehoux | 2026-08-17 |
| | | |||
| * | chore(web): add Stylelint CSS checks | Martin Kagamino Lehoux | 2026-08-16 |
| | | |||
| * | 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): migrate browser code to TypeScript | Martin Kagamino Lehoux | 2026-08-16 |
| | | |||
| * | refactor(web): split ride detail JavaScript | 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 |
| | | |||
| * | refactor: extract ride analysis | 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 |
| | | |||
| * | refactor(web): centralize OKLCH palette | Martin Kagamino Lehoux | 2026-08-11 |
| | | |||
| * | refactor(web): extract embedded stylesheet | Martin Kagamino Lehoux | 2026-08-11 |
| | | |||
| * | feat: add interactive ride profile | Martin Kagamino Lehoux | 2026-08-11 |
| | | |||
| * | chore: Update Go tooling configuration | 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 |
