aboutsummaryrefslogtreecommitdiff
path: root/web
Commit message (Collapse)AuthorAge
* Add type filtering, drop hard-coded filters and route filter, tune backtestMartin Kagamino Lehoux2026-08-24
|
* Add data quality bulk categorisation pageMartin Kagamino Lehoux2026-08-24
|
* Add hardcore ride categorisation with bike and ride typesMartin Kagamino Lehoux2026-08-23
|
* 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
|
* Handle Strava rate limiting with abort, retry time and daily usage displayMartin Kagamino Lehoux2026-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 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.
* Add distance filter to analytics and go fix to the check gateMartin Kagamino Lehoux2026-08-21
|
* 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
|
* 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(web): add ride library filtersMartin Kagamino Lehoux2026-08-18
|
* 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
|
* 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
|
* refactor: centralize test database setupMartin Kagamino Lehoux2026-08-14
|
* refactor: extract ride analysisMartin 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: add interactive ride profileMartin Kagamino Lehoux2026-08-11
|
* chore: Update Go tooling configurationMartin Kagamino Lehoux2026-08-11
|
* feat: Save Strava activities without routesMartin Kagamino Lehoux2026-08-11
|
* fix: Continue Strava import after invalid activitiesMartin Kagamino Lehoux2026-08-11
|
* feat: Add Strava import progressMartin Kagamino Lehoux2026-08-11
|
* feat: Add ride detail mapMartin Kagamino Lehoux2026-08-11
|
* perf: Load ride values from SQLiteMartin Kagamino Lehoux2026-08-08
|
* feat: Persist Cotacol ride valuesMartin Kagamino Lehoux2026-08-08
|
* feat: Add ride table sortingMartin Kagamino Lehoux2026-08-07
|
* refactor: Replace env config with atomic YAMLMartin Kagamino Lehoux2026-08-05
|