Drei Seiten statt zehn: Start, Updates, Modelle — am PC mit Kopfnavigation, am Handy mit Leiste unten. Umsetzung von Mockup A („Cockpit“), vom User am 23.09. gewaehlt. - Start: Hauptwarnleuchte + 8 Warnlampen, Rundinstrumente mit Live-Werten aus dem Strom (Speicher, Temperatur, Platte) und Laufzeit-Zaehlwerk, Checkliste der Waechter-Hinweise mit ihren Knoepfen, Flugplan (heute gelaufen / geplant), Radar-Kasten. - Updates: Bausteine mit „Laeuft → Neu“ und Zusammenfassung, laufende Auftraege, Verlauf der Sonntagslaeufe (neu: GET /api/updates/verlauf), Sicherungen samt Zurueckspielen mit Rueckfrage. - Modelle: Speicherbalken, Rollen Hirn/Coder/Dritte Rolle, wer die Modelle nutzt (7 Tage + 24 h je Stunde), Modell-Radar, weitere Eintraege, Modelle selbst suchen. - Schubladen: Dienste mit Protokoll und Neustart, Einstellungen (HF-Zugang), Hermes-Link. - Werkzeuge: Vite 8, React 19.3 mit React Compiler 1.0 (Babel), vitest 5, Tailwind 4.3, shadcn 4 (Radix) fuer Dialog/Schublade/Knopf, Schriften Barlow/Barlow Condensed/ JetBrains Mono. Entfernt: recharts, cmdk, Kraftgraph, zustand, Inter, Space Grotesk. - Startbuendel 115 KB gzip (Budget 140); Updates/Modelle/Schubladen laden bei Bedarf. - 16 Oberflaechen-Tests (Instrument-Bogen, Hauptleuchte, Zeitformate, Versionen). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
36 lines
1.4 KiB
TypeScript
36 lines
1.4 KiB
TypeScript
import { defineConfig } from "vitest/config"
|
|
import react, { reactCompilerPreset } from "@vitejs/plugin-react"
|
|
import babel from "@rolldown/plugin-babel"
|
|
import tailwindcss from "@tailwindcss/vite"
|
|
import path from "node:path"
|
|
|
|
// Box-Wart-Umbau (09/2026): Vite 8 (Rolldown) + React 19.3 mit React Compiler 1.0.
|
|
// Der Compiler läuft über Babel (stabil); die Rust-Variante von plugin-react ist noch
|
|
// experimentell. Er memoisiert selbst — useMemo/useCallback braucht der Code nicht.
|
|
const ziel = process.env.MC_API_TARGET || "http://127.0.0.1:9000"
|
|
|
|
export default defineConfig({
|
|
plugins: [react(), babel({ presets: [reactCompilerPreset()] }), tailwindcss()],
|
|
resolve: {
|
|
alias: { "@": path.resolve(__dirname, "./src") },
|
|
},
|
|
server: {
|
|
proxy: {
|
|
// Dev: /api → FastAPI-Backend (Override via MC_API_TARGET, z.B. die Box)
|
|
"/api": { target: ziel, changeOrigin: true },
|
|
// Hermes-Dashboard läuft same-origin über den MC2-Reverse-Proxy, mit WebSockets.
|
|
"/hermes-ui": { target: ziel, changeOrigin: true, ws: true },
|
|
},
|
|
},
|
|
build: { outDir: "dist" },
|
|
// Vitest teilt sich diese Konfiguration (Aliase, Plugins) — kein zweiter Build-Aufbau.
|
|
// jsdom, weil die Tests echte Komponenten mounten; `globals` spart den import in jeder Datei.
|
|
test: {
|
|
environment: "jsdom",
|
|
globals: true,
|
|
setupFiles: ["./src/test/setup.ts"],
|
|
include: ["src/**/*.test.{ts,tsx}"],
|
|
restoreMocks: true,
|
|
},
|
|
})
|