- 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
74 lines
2.8 KiB
Markdown
74 lines
2.8 KiB
Markdown
# AGENTS.md — Racecraft Project Context
|
|
|
|
## Mandatory Reference
|
|
|
|
**Before starting any work on this project, always read the Joplin note that contains the full project plan and architecture.**
|
|
|
|
- **Joplin Note ID**: `6c0dcb2a567348fd9796f50c790082e4`
|
|
- **Title**: "Sim Racing Telemetry Analysis Platform — Project Plan"
|
|
- **Tags**: sim-racing, lua, telemetry, rust, project-plan, assetto-corsa
|
|
|
|
Use the `joplin_get_note` tool with note ID `6c0dcb2a567348fd9796f50c790082e4` to retrieve the full project plan.
|
|
|
|
## Project Overview
|
|
|
|
`racecraft` is a Vue.js 3 + TypeScript web client for the [rusty-telemetry](https://codeberg.org/jhunnius/rusty-telemetry) sim racing telemetry platform. It provides live telemetry visualization, session management, and data analysis through a browser-based interface.
|
|
|
|
## Companion Repository
|
|
|
|
| Field | Value |
|
|
|-------|-------|
|
|
| **Repo** | `rusty-telemetry` |
|
|
| **Path** | `~/RustroverProjects/rusty-telemetry` |
|
|
| **Language** | Rust |
|
|
| **Purpose** | UDP listener, REST API backend, analysis engine |
|
|
|
|
## Tech Stack
|
|
|
|
- Vue 3.5 (Composition API, `<script setup>`)
|
|
- TypeScript 5.7
|
|
- Vite 6 (dev server with API proxy)
|
|
- Pinia 3 (state management)
|
|
- Vue Router 4 (client-side routing)
|
|
- Axios (HTTP client)
|
|
- Chart.js 4 + vue-chartjs 5 (data visualization)
|
|
- HTML Canvas 2D (track map rendering)
|
|
|
|
## Key Ports
|
|
|
|
| Port | Component | Purpose |
|
|
|------|-----------|---------|
|
|
| 8080 | rusty-telemetry API | REST API backend |
|
|
| 5173 | racecraft (Vite dev) | Frontend dev server |
|
|
| 9996 | rusty-telemetry UDP | AC KSUDP handshake |
|
|
| 10101 | rusty-telemetry UDP | AC Telemetry Tool |
|
|
| 5606 | rusty-telemetry UDP | PCARS telemetry |
|
|
|
|
## API Communication
|
|
|
|
Racecraft communicates exclusively with the rusty-telemetry REST API (23 endpoints). In development, Vite proxies `/api/*` to `http://127.0.0.1:8080`. See the rusty-telemetry README for full endpoint documentation.
|
|
|
|
## Features
|
|
|
|
- **Dashboard** — system status, live feed cards, recent sessions
|
|
- **Live Telemetry** — real-time gauges (speed, RPM, gear, inputs), per-feed status
|
|
- **Sessions** — create/complete/reopen sessions, start/stop/delete runs, view analysis
|
|
- **Shift Points** — gear RPM range charts, shift event timeline, recommended shift RPM
|
|
- **Car Characteristics** — aggregated shift-point profiles per car across all sessions
|
|
- **Track Mapping** — canvas-rendered track boundaries, persistent track models
|
|
|
|
## State Management (Pinia Stores)
|
|
|
|
| Store | Purpose |
|
|
|-------|---------|
|
|
| `stores/telemetry.ts` | Live telemetry polling + derived status |
|
|
| `stores/sessions.ts` | Session CRUD, run management, analysis retrieval |
|
|
| `stores/tracks.ts` | Track model list + detail |
|
|
|
|
## Commands
|
|
|
|
```bash
|
|
npm run dev # Start dev server (0.0.0.0:5173)
|
|
npm run build # TypeScript check + Vite production build
|
|
npm run preview # Preview production build
|
|
```
|