- Update ShiftPointAnalysis types: gear_ranges → gear_curves (with
acceleration data points), shift_events → crossover_points, add
runs_analyzed field
- Add UseCaseInfo type for GET /api/use-cases (now returns objects
with id, name, guidance instead of plain strings)
- Add guidance and recording_id fields to UseCaseSession
- Rewrite ShiftPointsView: scatter chart for gear acceleration curves,
dual y-axis bar chart for crossover RPM/speed, 4-column summary
- Update SessionDetailView: show session guidance, crossover points
and runs analyzed in analysis stats
- Extract shared type guard functions into src/utils/analysis.ts
- Type getAnalysis/reAnalyze as AnalysisResult instead of
Record<string, unknown>
- Type getGames return as string[] to match backend
Vue 3 + TypeScript + Vite web client for rusty-telemetry.
- Dashboard with system status, live feeds, quick actions
- Live telemetry view with real-time gauges (speed/RPM/gear)
- Session management (create, run, complete, analyze)
- Shift point analysis with Chart.js visualizations
- Track map with Canvas 2D boundary rendering
- Typed API client for all 19 REST endpoints
- Dark theme, network-accessible via Vite 0.0.0.0 bind