Files
box-box/frontend
AmanTahiliani 888378e210 fix(live): give the timing tower the fold back
The tyre deg panel expanded by default during races and rendered a
placeholder row per driver until enough clean laps existed to fit a
degradation model. For the first third of a race that was ~525px of
'warming up' rows above the Timing Tower, pushing the tower — the thing
the page exists for — off the fold entirely.

The panel now opens when it has something to say rather than because the
session is a race, and says 'collecting clean laps' while it waits. A
reader who toggles it keeps their choice.

Also:
- Hoist degradationModel into a memo shared by the readiness check and the
  rows. It is O(laps) per driver and previously re-ran on every render at
  feed rate.
- Order the side rail most-synthesized to most-raw, so a reader arriving
  mid-session gets 'what just happened' before the regulatory log.
- Fade the trailing edge of the nav below 560px. It scrolls with a hidden
  scrollbar, so the cut-off item read as a clipping bug rather than as
  scrollable.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-26 09:23:17 -04:00
..
2026-05-25 01:10:44 -04:00
2026-05-25 01:10:44 -04:00
2026-05-25 01:10:44 -04:00
2026-05-25 02:04:16 -04:00

box-box Web Frontend

React Race Hub slice for the production Web UI.

Commands

npm install
npm run dev
npm test -- --run
npm run build

The Vite dev server proxies /api requests to the Go server on http://localhost:8080.

Run the backend separately:

go run cmd/main.go --web

Then open the React app, usually:

http://localhost:5173/race-hub

Load an ingested session with:

http://localhost:5173/race-hub?session_key=9472