feat: scaffold UI web (React/Vite/Tailwind) + Login (v0.22.0)
Package web/ : React 19 + Vite 8 + Tailwind 4 + react-router 7 + PWA. Tokens dark HUD Jarvis-red, client API, contexte auth JWT, shell + garde de route, écran Login (mot de passe + TOTP). Chat/Review en stubs. Build OK, 0 vuln. docs/ui-design.md. Palier de risque : reversible (front statique, aucun accès infra direct). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
# web — UI CHLOVA
|
||||
|
||||
Client web/PWA du backend CHLOVA. **Phase 4.** Style dark HUD (voir
|
||||
`../docs/ui-design.md`). React 19 + Vite 8 + Tailwind 4 + react-router 7.
|
||||
|
||||
## Dev
|
||||
```bash
|
||||
npm install
|
||||
npm run dev # http://localhost:5173 ; proxy /api → backend :8080
|
||||
npm run build # → web/dist (servi same-origin par le backend en prod)
|
||||
npm run typecheck
|
||||
```
|
||||
Le backend doit tourner avec l'auth configurée (`CHLOVA_ADMIN_*`, voir
|
||||
`orchestrator` → `npm run provision-auth`).
|
||||
|
||||
## Structure
|
||||
| Fichier | Rôle |
|
||||
|---|---|
|
||||
| `src/api.ts` | Client API (login, chat, review, state). |
|
||||
| `src/auth.tsx` | Contexte JWT (localStorage) + login/logout. |
|
||||
| `src/App.tsx` | Router + shell (garde : pas de token → Login). |
|
||||
| `src/pages/Login.tsx` | Login fort (mdp + TOTP). |
|
||||
| `src/pages/Chat.tsx` | Conversation agent (v0.23.0). |
|
||||
| `src/pages/Review.tsx` | Need-review : approuver/refuser (v0.24.0). |
|
||||
|
||||
## Périmètre v1
|
||||
Login → Chat → Review. Voix + app RN : phases ultérieures (API commune réutilisée).
|
||||
Reference in New Issue
Block a user