Phase 2: make position-based lap delta the default pace method#44
Merged
Conversation
Routes the app's pace computation through the new position delta behind a
user setting. paceData keeps its exact shape, so every consumer (charts,
race-line, overlays, video export, headline gap) upgrades transparently.
- useReferenceLap now calls computeLapPace() for both the reference and
best-lap-fallback paths, selecting position (default, zero-lag) vs the legacy
distance method.
- New settings: deltaMethod ('position' | 'distance', default position) and
deltaSampleMeters (default 2), with a Settings -> Lap Delta toggle.
- computeLapPace selector added to lapDelta.ts with 2 tests (distance delegates
to the legacy path; position resamples + projects).
https://claude.ai/code/session_01QF56Xjp5ZMgXrqfTWD14Le
CI failed at `npm ci` with "Missing: @esbuild/<platform>@0.28.0 from lock file" across all workflows. Root cause: vitest 4 pulls a nested vite 8 that resolves esbuild 0.28.0, and the lockfile (written by npm 10.9+) records its nested optional platform packages in a form the runner's Node 20 npm (10.8) won't validate. `npm ci` passes cleanly under npm 10.9.7. Bump all five workflows from Node 20 to Node 22 (current LTS, ships npm 10.9+), which both reads the lockfile correctly and clears GitHub's Node 20 runner deprecation warning. Lockfile is unchanged. https://claude.ai/code/session_01QF56Xjp5ZMgXrqfTWD14Le
`npm ci` was failing with "Missing: esbuild@0.28.0 from lock file" — the lockfile drifted out of sync with package.json after the recent merges, so the esbuild 0.28.0 tree (pulled by vitest 4 / vite 8) wasn't fully recorded. Ran `npm install` to reconcile; npm ci now passes and the full gate is green (lint, typecheck, 295 tests, build). https://claude.ai/code/session_01QF56Xjp5ZMgXrqfTWD14Le
Coverage SummaryLines: 14.52% (1470/10119) · Statements: 13.83% · Functions: 10.06% · Branches: 10.53% Per-file coverage
|
0.0.3 broke the build by importing its own panel via the host `@/` alias (`@/panel/CoachPanel`), which resolves to the host's src at bundle time. 0.0.4 uses relative internal imports (`./panel/CoachPanel`, `../analysis/insights`) while keeping host contracts on `@/`, so the coach's Labs panel now bundles and loads. Build + full gate green. https://claude.ai/code/session_01QF56Xjp5ZMgXrqfTWD14Le
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Routes the app's pace computation through the new position delta behind a user setting. paceData keeps its exact shape, so every consumer (charts, race-line, overlays, video export, headline gap) upgrades transparently.
https://claude.ai/code/session_01QF56Xjp5ZMgXrqfTWD14Le