racecraft/AGENTS.md

2.8 KiB

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 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 (28 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

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