rides.md Back to app
Road bend

Changelog

Public release log. Starts at the first production deploy on 2026-03-08. Early entries group multiple same-day deploys.

v2026.03.22 — 2026-03-22

Homepage onboarding simplified around local FIT drop + demo ride.

Added

  • One-click Try a demo ride path from the homepage drop zone.
  • Bundled demo FIT asset based on a sanitized race file (realistic power/HR/elevation profile).

Changed

  • Homepage hero and checklist copy rewritten to the physiology-first tone.
  • Drop zone moved left in the two-column layout and now carries the primary onboarding flow.
  • Markdown action label updated to Copy ride as markdown.
  • Empty-state screenshots replaced with AVIF assets for smaller payloads.

Fixed

  • Decoupling caution language now distinguishes metric interpretability from sensor faults.
  • Demo ride keeps threshold reference so IF and default VT estimates render correctly.

Removed

  • Homepage export-instruction accordion (Garmin/Strava/etc.) from the primary path.
  • Legacy JPG empty-state screenshots superseded by AVIF versions.

v2026.03.21 — 2026-03-21

Tone and edge-case pass on ride detail.

Added

  • More in-place metric context in ride detail tooltips.
  • Better handling for virtual GPX-derived rides in detail rendering.

Changed

  • Ride detail copy rewritten to match the physiology-first tone.

Fixed

  • Several GPX edge cases where expected route fields were missing.

Removed

  • Residual coaching-style phrasing in ride detail UI copy.

v2026.03.20 — 2026-03-20

Launch asset and metadata cleanup.

Added

  • Full favicon set, Apple touch icon, and social preview image.
  • Canonical + Open Graph + Twitter metadata for homepage and ride detail.

Changed

  • Brand assets tightened (logo weight and sizing).

Fixed

  • Leftover deploy artifacts and ignore rules.

Removed

  • Temporary /intervals prototype page.
  • Stale analysis draft file from the web root.

v2026.03.17 — 2026-03-17

Architecture reset: homepage + dedicated ride detail.

Added

  • Dedicated /ride/ page with modular metric/rendering code.
  • Topo map style toggle and stronger empty-state screenshots.

Changed

  • Homepage and ride detail UX flow tightened for faster scanning.
  • Color system moved to OKLCH; grade and elevation palettes separated.

Fixed

  • Detail page interaction and layout issues after the split.

Removed

  • Monolithic single-page implementation.
  • Mallorca route files and GPX-to-FIT script from the production bundle.

v2026.03.16 — 2026-03-16

Route and tooling experiment release.

Added

  • Prototype route pages (/mallorca, /intervals).
  • Sample Mallorca route assets (GPX and FIT).
  • gpx-to-fit-course conversion script and Wrangler config.

Changed

  • Project scope briefly expanded from pure ride inspection to route utilities.

Fixed

  • Deploy ignore rules for cleaner Cloudflare Pages artifacts.

Removed

  • None.

v2026.03.09 — 2026-03-09

Shift from static report to context-aware ride analysis.

Added

  • Race Execution panel (hourly pacing + match analysis + elevation split).
  • Ride as Markdown export for AI workflows.
  • Metric tooltips and dynamic zones with editable lab context (FTP, VT1/VT2, FatMax, HR, weight).
  • IndexedDB persistence with auto-restore of the last ride.

Changed

  • Settings split into quick values vs. advanced lab fields.
  • Wahoo flow simplified to a single “Pull last ride” action and marked sandbox/beta.
  • FatMax visually highlighted in the power zone graph.

Fixed

  • Gap handling in timed record construction.
  • Zone rendering edge cases in mixed ride files.

Removed

  • IF from summary metrics.

v2026.03.08 — 2026-03-08

First production deploy day. Multiple deploys, one long refactor loop.

Added

  • Browser-only FIT viewer with ride summary, map, and laps table.
  • Wahoo OAuth PKCE integration to pull recent workouts in sandbox mode.
  • Core metric stack: NP, TSS, cadence, max power/HR, work, decoupling, VI, and data quality flags.
  • Power duration curve with peak markers and threshold reference lines.
  • Gradient-colored route rendering and initial mobile layout support.

Changed

  • Summary cards grouped by analysis category.
  • Ride fetching changed from YTD scans to last-10 calls to reduce API load.
  • Drop zone and provider connect panel merged into one front-page layout.

Fixed

  • Work (kJ) now computed from power records, not calorie conversion.
  • OAuth callback/token lifecycle issues (verifier fallback, revoke on disconnect, listener stacking).
  • Power-curve axis overlap and several SVG/icon regressions.

Removed

  • Avg Power card (NP retained as primary).
  • eFTP experiment and vanity metric section.

March 8, 2026 — Born on a rest day in Mallorca