aboutsummaryrefslogtreecommitdiff
path: root/web/server_test.go
Commit message (Collapse)AuthorAge
* Swap ride read path from GPX to FIT for performanceMartin Kagamino Lehoux2026-08-27
| | | | | | Always use FIT for detail, official climb creation and backtest; keep GPX fallback for legacy rides pending backfill. FIT is 10-20x smaller and parses without XML.
* Add dual GPX/FIT exporter and backfill for ridesMartin Kagamino Lehoux2026-08-27
| | | | | | | Phase 1 writes both .gpx and .fit on Strava import, adds fit_path column, renames storage.gpx_dir to storage.rides_dir, and backfills missing FIT files from existing GPX without breaking CLI progress. FIT files are gitignored.
* Resync Strava title from list payload via SaveMartin Kagamino Lehoux2026-08-27
| | | | | | | | Context / Problem: Strava titles can be corrected after import. The sync path only handled new rides; existing rides were marked skipped without checking the cheap list metadata, so corrections like ride #789 stayed stale. What: In syncRides reuse the existing Save write path for rare title resyncs (pay GPX parse cost) when existing.Name != list.Name; track progress.Updated and surface it in SSE/TS UI; add tests for resync without stream fetch. Remove the now-obsolete TODO. QA: go test/ vet, tsc, biome/stylelint pass.
* Extract climb detection into a dedicated climb packageMartin Kagamino Lehoux2026-08-27
| | | | | | | | | | | | | | | | | | | Move climb detection, slope, and Cotacol scoring out of ride into a new climb package that operates on a geometry-only Route (distances, elevations, coords). Ride embeds climb.Route and keeps its timing and telemetry columns. - climb.Detect returns []DetectedClimb (Climb + ride-absolute Start). - Climb owns its sliced geometry; indices are local, with Start reported at the detection boundary for absolute position. - Detected bounds use core.Interval; freeRegions claim suppression fixed. - ride no longer builds slices: ClimbFromDist/ClimbFromIndexes/climbFrom and ride.Climb/Interval/Range are removed; rideanalysis, mountain_pass MatchClimb, and web views are rewired to climb types. - New internal/routetest builds climb.Route from the ride DSL; ridetest reuses it and adds timestamps and telemetry. - Tests moved to climb (synthetic detection and difficulty) and kept in ride for GPX-example integration; ride.comparison detection coverage retained. - mountain_pass.nearestCrossing now reuses geo.Nearest.
* Migrate cross-package ride test fixtures to the ridetest DSLMartin Kagamino Lehoux2026-08-25
| | | | | | | | | | | Replace raw FromColumns 4-array blocks in official_climb, mountain_pass and web test rides with ridetest.MustRide strings. Add a Heading option to ridetest for routes whose points are spaced differently per kilometer (e.g. the mountain_pass expanded-bounds route at 0.1 degrees/km). Lap, direction and cluster tests in official_climb keep FromColumns: the DSL generates monotonic northeast coords and cannot express per-point loops or reversals.
* Remove per-index ride accessors now dead after the component migrationMartin Kagamino Lehoux2026-08-25
| | | | | | | | The DistanceM, ElevationM, Coord, Timestamp and optional metric index accessors (HeartRateBpm, CadenceRpm, PowerW) are no longer used by any production code now that algorithms and consumers read ride components. Tests that asserted metric parsing and coordinates now read the component slices (Distances, Coords, HeartRates, Cadences, Powers).
* Add type filtering, drop hard-coded filters and route filter, tune backtestMartin Kagamino Lehoux2026-08-24
|
* 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
|
* Add global analytics page shell and split server.go by concernMartin 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): display nearby passes on ride mapsMartin Kagamino Lehoux2026-08-17
|
* feat(web): improve official climb profileMartin Kagamino Lehoux2026-08-16
|
* fix(web): use Cotacol for climb difficultyMartin 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
|
* feat: add official climb workflowMartin Kagamino Lehoux2026-08-14
|
* refactor(web): extract ride detail scriptMartin Kagamino Lehoux2026-08-11
|
* feat: add interactive ride profileMartin 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
|
* feat: Add web ride library with Strava syncMartin Kagamino Lehoux2026-08-05