<feed xmlns='http://www.w3.org/2005/Atom'>
<title>biking_home/mountain_pass, branch main</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<id>https://git.kagamino.dev/biking_home/atom?h=main</id>
<link rel='self' href='https://git.kagamino.dev/biking_home/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://git.kagamino.dev/biking_home/'/>
<updated>2026-09-06T14:40:17Z</updated>
<entry>
<title>Split cli.go into per-domain command files</title>
<updated>2026-09-06T14:40:17Z</updated>
<author>
<name>Martin Kagamino Lehoux</name>
<email>martin@lehoux.net</email>
</author>
<published>2026-09-06T14:40:17Z</published>
<link rel='alternate' type='text/html' href='https://git.kagamino.dev/biking_home/commit/?id=db4d2b40895db41ce188549f49a6f277ba95c890'/>
<id>urn:sha1:db4d2b40895db41ce188549f49a6f277ba95c890</id>
<content type='text'>
Move each CLI command into its owning package (mountain_pass, ride, web)
with dispatch and usage in main.go; remove the cli package.
</content>
</entry>
<entry>
<title>modernize</title>
<updated>2026-08-28T08:52:03Z</updated>
<author>
<name>Martin Kagamino Lehoux</name>
<email>martin@lehoux.net</email>
</author>
<published>2026-08-28T08:52:03Z</published>
<link rel='alternate' type='text/html' href='https://git.kagamino.dev/biking_home/commit/?id=ff57ebcbe4949b7b53e7c42ecc7916b601a67213'/>
<id>urn:sha1:ff57ebcbe4949b7b53e7c42ecc7916b601a67213</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Categorise OSM passes by highway and colour them on the ride detail map</title>
<updated>2026-08-27T16:05:59Z</updated>
<author>
<name>Martin Kagamino Lehoux</name>
<email>martin@lehoux.net</email>
</author>
<published>2026-08-27T16:05:59Z</published>
<link rel='alternate' type='text/html' href='https://git.kagamino.dev/biking_home/commit/?id=558f755f5746a4ee819de87579951b7533688e5d'/>
<id>urn:sha1:558f755f5746a4ee819de87579951b7533688e5d</id>
<content type='text'>
Passes are extracted from OSM PBF nodes (mountain_pass=yes) and linked to
containing ways; highway road values map to road, track to track,
path/footway to path, plus hiking for rock/climbing. All passes are kept,
coloured distinctly (road/track/path/hiking/unknown) for road-bike validation
on ride 397. Single squashed migration adds category column, cheap to re-extract.
</content>
</entry>
<entry>
<title>Extract climb detection into a dedicated climb package</title>
<updated>2026-08-27T09:21:17Z</updated>
<author>
<name>Martin Kagamino Lehoux</name>
<email>martin@lehoux.net</email>
</author>
<published>2026-08-27T09:21:17Z</published>
<link rel='alternate' type='text/html' href='https://git.kagamino.dev/biking_home/commit/?id=825cf388b55a6c8441e02149749bb6e2968477c0'/>
<id>urn:sha1:825cf388b55a6c8441e02149749bb6e2968477c0</id>
<content type='text'>
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.
</content>
</entry>
<entry>
<title>Lint &amp; fix</title>
<updated>2026-08-27T06:05:58Z</updated>
<author>
<name>Martin Kagamino Lehoux</name>
<email>martin@lehoux.net</email>
</author>
<published>2026-08-27T06:05:58Z</published>
<link rel='alternate' type='text/html' href='https://git.kagamino.dev/biking_home/commit/?id=1e8efcdb7e7747072e83bda3d4a7f0b3810a439d'/>
<id>urn:sha1:1e8efcdb7e7747072e83bda3d4a7f0b3810a439d</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Migrate cross-package ride test fixtures to the ridetest DSL</title>
<updated>2026-08-25T11:26:22Z</updated>
<author>
<name>Martin Kagamino Lehoux</name>
<email>martin@lehoux.net</email>
</author>
<published>2026-08-25T11:26:22Z</published>
<link rel='alternate' type='text/html' href='https://git.kagamino.dev/biking_home/commit/?id=e73b7a9ccb4bc61e54d1fdc61b5954879c637d00'/>
<id>urn:sha1:e73b7a9ccb4bc61e54d1fdc61b5954879c637d00</id>
<content type='text'>
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.
</content>
</entry>
<entry>
<title>Make mountain pass and web consumers take ride components instead of a whole Ride</title>
<updated>2026-08-25T09:32:57Z</updated>
<author>
<name>Martin Kagamino Lehoux</name>
<email>martin@lehoux.net</email>
</author>
<published>2026-08-25T09:32:57Z</published>
<link rel='alternate' type='text/html' href='https://git.kagamino.dev/biking_home/commit/?id=708f5428968b7c1526f257b683d0146ef5dae418'/>
<id>urn:sha1:708f5428968b7c1526f257b683d0146ef5dae418</id>
<content type='text'>
rideBounds, nearestCrossing and DetectCrossings now accept the coordinate,
distance and elevation component slices they read. LoadMountainPassesAroundRide
takes the coords slice only. Web ride view builders and the official climb
creation path iterate ride components (Coords, Distances, Elevations) rather
than per-index accessors on Ride.
</content>
</entry>
<entry>
<title>Verify downloaded France OSM PBF against geofabrik's published MD5</title>
<updated>2026-08-24T12:19:01Z</updated>
<author>
<name>Martin Kagamino Lehoux</name>
<email>martin@lehoux.net</email>
</author>
<published>2026-08-24T12:19:01Z</published>
<link rel='alternate' type='text/html' href='https://git.kagamino.dev/biking_home/commit/?id=9c2337b50a52ee95011028f6193e0c56aa1fc9d4'/>
<id>urn:sha1:9c2337b50a52ee95011028f6193e0c56aa1fc9d4</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Add progress bars to the long-running CLI processes (backtest, backfill, extract-osm)</title>
<updated>2026-08-24T10:07:30Z</updated>
<author>
<name>Martin Kagamino Lehoux</name>
<email>martin@lehoux.net</email>
</author>
<published>2026-08-24T10:07:30Z</published>
<link rel='alternate' type='text/html' href='https://git.kagamino.dev/biking_home/commit/?id=a9a384972649182c188396c5f996ae617d35188a'/>
<id>urn:sha1:a9a384972649182c188396c5f996ae617d35188a</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Upgrade to Go 1.27 and apply go fix modernization</title>
<updated>2026-08-21T13:52:02Z</updated>
<author>
<name>Martin Kagamino Lehoux</name>
<email>martin@lehoux.net</email>
</author>
<published>2026-08-21T13:52:02Z</published>
<link rel='alternate' type='text/html' href='https://git.kagamino.dev/biking_home/commit/?id=d25c2cba801cbaa9f9c0d5a92b90f153630ffe24'/>
<id>urn:sha1:d25c2cba801cbaa9f9c0d5a92b90f153630ffe24</id>
<content type='text'>
</content>
</entry>
</feed>
