trails/openspec/changes
Ullrich Schäfer 8ba5554a67
Add @trails-cool/fit package with GPX→FIT Course encoder
Wraps @garmin/fitsdk to emit FIT Course files from GPX, the binary
format Wahoo's POST /v1/routes API requires. Server-side only — the
~1 MB SDK never ships to the planner browser bundle.

Round-trip tests use fit-file-parser as an independent oracle and
assert lat/lon parity within 1e-4 deg and altitude within 0.5 m
across short flat, alpine, multi-day, and single-point fixtures.

Updates design.md decision #1: the original hand-rolled-encoder plan
was justified largely by ESM friction in the Garmin SDK, but as of
v21.202.0 the SDK is pure ESM with zero deps. Wrapping it saves us
~400 LOC of binary plumbing and ongoing maintenance against future
FIT spec updates.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-30 22:31:37 +02:00
..
activity-photos Fix all OpenSpec validation failures (36/36 passing) 2026-04-06 22:17:52 +02:00
archive Archive add-explore-page change and promote specs 2026-04-26 09:40:42 +02:00
changelog Add 8 proposed changes and old trails analysis 2026-03-25 03:57:20 +01:00
configurable-demo-persona Apply configurable-demo-persona: per-instance demo identity + voice 2026-04-19 10:30:32 +02:00
demo-activity-bot Apply demo-activity-bot: Bruno, the synthetic public-walk generator 2026-04-19 10:14:58 +02:00
e2e-test-reorganization Fix all openspec validation errors (45/45 pass) 2026-04-12 22:41:51 +02:00
journal-poi-details Fix all openspec validation errors (45/45 pass) 2026-04-12 22:41:51 +02:00
komoot-import Add 8 proposed changes and old trails analysis 2026-03-25 03:57:20 +01:00
local-dev-stack Fix all OpenSpec validation failures (36/36 passing) 2026-04-06 22:17:52 +02:00
mobile-app Implement mobile route editor with MapLibre and BRouter routing 2026-04-15 01:06:10 +02:00
pg-boss-background-jobs Add pg-boss background job queue with session expiry 2026-04-13 21:17:24 +02:00
route-discovery Fix all OpenSpec validation failures (36/36 passing) 2026-04-06 22:17:52 +02:00
route-features Add 8 proposed changes and old trails analysis 2026-03-25 03:57:20 +01:00
route-sharing Fix all OpenSpec validation failures (36/36 passing) 2026-04-06 22:17:52 +02:00
social-federation Propose: social-federation (ActivityPub via Fedify) 2026-04-25 22:31:28 +02:00
staging-environments Add OpenSpec proposal for staging environments 2026-04-14 09:02:23 +02:00
visual-redesign Fix all OpenSpec validation failures (36/36 passing) 2026-04-06 22:17:52 +02:00
wahoo-route-push Add @trails-cool/fit package with GPX→FIT Course encoder 2026-04-30 22:31:37 +02:00
waypoint-notes Fix all OpenSpec validation failures (36/36 passing) 2026-04-06 22:17:52 +02:00