expria-frontend/docs/CHANGELOG.md

3.5 KiB

Changelog — Expria Frontend

Toutes les modifications notables du projet frontend sont documentées dans ce fichier.

Format basé sur Keep a Changelog.

Convention

Chaque entrée suit ce format :

## [Unreleased] — YYYY-MM-DD — Session <nom>

### Added (nouveautés)
- ...

### Changed (modifications)
- ...

### Fixed (corrections)
- ...

### Removed (suppressions)
- ...

### Security (sécurité)
- ...

[Unreleased]

Added

  • Documentation initiale du projet (ARCHITECTURE, ONBOARDING, SECURITY, etc.)
  • 5 ADRs pour les décisions architecturales majeures
  • Code source de src/entities/user/access.ts et lib.ts avec tests

2026-04-20 — Sprint 0.5 bis — AppLayout + primitives UI + refonte visuelle

Ajouté

  • src/app/AppLayout.tsx — layout applicatif desktop/mobile (sidebar fixe 240px, drawer mobile, BottomNav)
  • src/app/Sidebar.tsx — navigation latérale avec verrouillage hasAccess() (Progression, Examen blanc, Historique)
  • src/app/MobileHeader.tsx — header mobile sticky (Logo, ThemeToggle, bouton menu hamburger)
  • src/app/BottomNav.tsx — navigation mobile fixe (4 items, bottom sheet "Simuler", tap target min 44px)
  • src/shared/ui/Button.tsx — primitive Button (variants: primary/secondary/ghost/upgrade ; sizes: sm/md/lg ; loading Loader2)
  • src/shared/ui/Card.tsx — primitive Card (variants: default/raised/interactive ; rendu <button> si onClick fourni)
  • src/shared/ui/Badge.tsx — primitive Badge (variants: plan/nclc/neutral ; couleur selon planValue pour variant plan)

Modifié

  • src/app/router.tsx — layout routes via PrivateLayout (ProtectedRoute + AppLayout + Outlet) ; ComingSoon inline ; redirect /simulation/simulation/ee
  • src/features/simulations/components/TaskSelector.tsx — refonte avec Card interactive / Card default opacity-60, Badge "EE"/"EO", eyebrow tracking-widest, icône verrou
  • src/features/simulations/pages/SimulationPage.tsx — suppression header interne (Logo + ThemeToggle) ; root <main> ; Button migré vers @/shared/ui/Button variant="secondary"
  • src/features/dashboard/pages/DashboardPage.tsx — suppression header interne ; Button variant="primary" avec navigate('/simulation/ee') ; Badge variant="plan" planValue={data.plan} ; tout migré vers @/shared/ui/

Documentation

  • docs/TECH_DEBT.md v1.6 — ajout FTD-18 (SimulationForm migration Button), FTD-19 (token --shadow-focus manquant)

Tests

  • Typecheck : 0 erreur
  • Vitest : 59/59 passés
  • Tests manuels : à valider par Hermann

2026-04-19 — Sprint 1 / Étape 6 — Maintenance mode + outillage sécurité

Ajouté

  • Page de maintenance statique (src/app/MaintenancePage.tsx) — logo + message, tokens Direction H, zéro dépendance
  • Guard VITE_MAINTENANCE_MODE dans main.tsx — si true, aucun provider ne se monte, aucun appel réseau
  • Variable VITE_MAINTENANCE_MODE dans env.ts (optionnelle, défaut false)
  • Hook PreToolUse Claude Code (security-check.sh) — 9 patterns SECURITY.md §2
  • Hook Stop Claude Code (check-file-size.sh) — alerte fichiers > 200 lignes
  • MCP server Semgrep enregistré dans Claude Code

Documentation

  • ARCHITECTURE.md §7 — ajout VITE_MAINTENANCE_MODE dans la liste des variables
  • TECH_DEBT.md — FTD-16 résolu (maintenance mode implémenté)

Tests

  • Typecheck : 0 erreur
  • Vitest : 37/37 passés
  • Test manuel : maintenance mode vérifié (page affichée, aucun appel réseau, routing bloqué)