Commit graph

12 commits

Author SHA1 Message Date
02d3ea0515 feat: racing line view, canvas zoom/pan, track build UI
- Add RacingLineView.vue: canvas track map with speed heatmap and
  per-lap color modes, lap toggle checkboxes, lap stats table.
- Add useCanvasZoom composable: wheel zoom toward cursor, drag pan,
  reset button with zoom indicator.
- Apply zoom/pan to both RacingLineView and TrackDetailView.
- Add RacingLineAnalysis types + isRacingLineAnalysis type guard.
- Add route /analysis/racing-line/:id.
- Track build UI: game dropdown + track name input, proper error
  display (extracts data.error from axios response body).
- Add .form-input CSS utility class.
- Racing line quick stats in SessionDetailView.
- Fix missing resize listener in RacingLineView.
- Fix indentation on grip stat card.
2026-07-04 11:17:13 +02:00
2228a71a5f legal: add AGPL-3.0 license, copyright headers, commercial license info
- LICENSE: GNU AGPL-3.0 (full text)
- Copyright headers added to all 19 source files (TS + Vue)
- COMMERCIAL_LICENSE.md: dual-license explanation (AGPL + commercial)
2026-06-25 11:09:04 +02:00
57d1088b44 docs: add car grip analysis feature, GripAnalysisView to README 2026-06-24 10:21:38 +02:00
43ffedbf78 feat: GripAnalysisView — car grip envelope visualization
- New GripAnalysisView with 4 scatter charts:
  1. Grip Envelope (peak G vs speed: lateral/accel/brake)
  2. Grip Circle (longitudinal vs lateral G scatter)
  3. Cornering Grip vs Speed
  4. Steering Response (steer angle vs lateral G)
- Summary stats: max lateral/accel/brake/combined G, peak lateral speed
- GripAnalysis types + type guard
- car_grip use case in SessionDetailView (quick stats + view button)
- Route /analysis/grip/:id
- Global .grid-4 CSS utility
2026-06-24 10:18:23 +02:00
c6bcab486c docs: fix endpoint count (28), correct track endpoint paths 2026-06-24 09:46:42 +02:00
7bda8b4af1 docs: update README and AGENTS.md for characteristics, tracks, endpoint changes
- Add Car Characteristics and Track Mapping feature sections
- Update project structure (8 routes, tracks store, new views)
- Update API contract (23 endpoints, add characteristics/tracks/build-track-model)
- Add Features and State Management sections to AGENTS.md
2026-06-24 09:39:59 +02:00
9e0b46596e feat: persistent sessions support, remove track_map, add characteristics + tracks views
- Remove obsolete track_map use case from types, views, and router
- Delete TrackMapView.vue (superseded by persistent TrackDetailView)
- Auto-analyze in handleBuildTrack before building track model
- Add CharacteristicsView: expandable car cards with aggregated shift-point
  profiles (gear RPM/speed ranges, recommended shift RPM)
- Add TracksView + TrackDetailView + tracks Pinia store (Canvas 2D geometry)
- Add characteristics API client functions (listCarProfiles)
- Add tracks and characteristics nav items and routes
- Update Game type values to match backend snake_case (project_cars_1/2)
- Update use_case types and labels (remove track_map, keep track_mapping)
2026-06-24 09:32:39 +02:00
a6af6e4b98 feat: add run deletion, session reopen, and feed merging UI 2026-06-06 10:20:43 +02:00
3fa5a1441a feat: add RPM vs. Force and Speed vs. RPM charts to shift point analysis 2026-06-06 08:16:10 +02:00
87e5bcae5b feat: align frontend with rusty-telemetry v0.5.0 API changes
- 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
2026-06-05 21:28:27 +02:00
aa6293d346 refactor: display status items as three cards in a row 2026-06-05 20:37:17 +02:00
cf9af73281 feat: initial Racecraft web client v0.1.0
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
2026-06-05 16:12:33 +02:00