9ddb3dc24a
docs: update CHANGELOG and ROADMAP for Sprint 4
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-25 08:54:47 +03:00
d1c8b548bb
feat(eo): complete EO simulation flow (T1 + T3) with Gemini transcription
...
- Gemini batch transcription (no Deepgram live)
- blobToBase64 helper (shared/lib/audio.ts)
- AudioRecorder: remove onChunk, add maxSeconds/onMaxReached auto-submit
- Timer stops at maxSeconds and triggers auto-submission
- EnregistrementEOPage: audioBase64 to backend, fix race condition step=done
- SimulationFlowProvider: submitEoAudio(audioBase64, mimeType, nclcCible)
- MIME normalization (strip codec params)
- Split CORRECTION_EE_TIMEOUT_MS (60s) / CORRECTION_EO_TIMEOUT_MS (120s)
- PresentationGenereeT1Page: localStorage persistence
Typecheck: OK · Tests: 159/159 ✅
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-25 08:28:51 +03:00
71c1ad3018
docs(changelog): add api-client timeout fix entry
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-25 02:28:04 +03:00
944d2803a2
fix(api-client): increase default timeout 5s → 15s
...
Render Starter tier has occasional >5s latency on first authenticated
requests after DB idle period. 15s absorbs cold-path latency without
masking real failures.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-25 01:47:26 +03:00
4005673ae8
feat(ui-polish): sidebar icons + topbar + dashboard redesign
...
- Sidebar: lucide-react icons, lock on gated items, upgrade badge on "Mon plan", user footer with avatar initials + plan label, "EX|PRIA" logo header
- Topbar: sticky with backdrop-blur, breadcrumb via centralized route-titles.ts, search placeholder, keyboard shortcuts + notifications icons
- Dashboard: split into Free/Standard/Premium views (ARCHITECTURE.md §3 aligned)
- NclcHero: NCLC display + gauge 5→10 + SVG score ring
- StatCards: simulations remaining + NCLC estimé + dernier score with delta
- RecentSimulations: 3 latest with NCLC badge + chevron nav
- NextStepCard: static recommendation per plan
- PaywallBanner: full-width redesign + fixed dead Boréal tokens
- Removed orphan MobileHeader.tsx (0 consumers)
Typecheck: OK · Tests: 122/122 ✅
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-25 00:52:02 +03:00
b68f160bce
feat(design-system): reskin Charcoal — tokens dark-default + sidebar navy permanent
...
- Remplacement intégral index.css par palette Charcoal (DESIGN_SYSTEM.md v2.0)
- Dark = thème par défaut, .light = override via @custom-variant light
- Sidebar navy #0C1528 permanent (identique dark+light)
- Script anti-FOUC inline dans index.html
- Layout : radial-gradient sur <main>, sidebar 230px, max-w-[1100px]
- Renommage tokens Boréal→Charcoal sur ~45 composants
- Inversion dark: → baseline + light: sur primitives shadcn
- Fix logo blanc forcé dans sidebar
- ADR 006 mis à jour
Typecheck: OK · Tests: 122/122 ✅
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-24 23:09:15 +03:00
407d1bd134
style: format useRapport.test.tsx (fix CI)
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-23 22:35:49 +03:00
cab9c8c92b
fix(simulations): resolve FTD-23 autosave after correction + FTD-24 auto-polling pending jobs
...
- FTD-23: propagate enabled=false to useAutosave when step is done/correcting, preventing 400 PATCH after correction
- FTD-24: add conditional refetchInterval (3s) in useRapport for pending exercices/modele, 2min timeout with retry UI
- 7 new tests (2 regression + 5 polling), 122/122 green
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-23 03:56:57 +03:00
bc2a1174d1
docs: fermeture FTD-28 (Semgrep CI), TECH_DEBT v1.18, CI verte
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-23 03:26:52 +03:00
e72d68513a
ci: env vars factices pour tests CI
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-23 03:23:23 +03:00
99617f117c
style: prettier format
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-23 03:17:16 +03:00
79bbbdc4e8
fix(lint): 4 erreurs ESLint corrigées — split SimulationFlowProvider, hook conditionnel, ref render, setState effect
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-23 03:05:14 +03:00
de69b3ff16
ci(semgrep): scan SAST --severity=ERROR (FTD-28)
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-23 02:46:19 +03:00
39b633d1e3
docs: fermeture FTD-27 (CI backend), TECH_DEBT v1.17
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-23 02:39:29 +03:00
d7321c868e
docs: fermeture FTD-29, TECH_DEBT v1.16
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-23 02:32:33 +03:00
1c84844108
ci(dependabot): config version updates weekly (FTD-29)
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-23 02:30:42 +03:00
5fdc4ee0ef
docs(changelog): réorg sécurité v1.15
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-23 02:23:32 +03:00
04dfbe2731
docs(tech-debt): réorg sécurité v1.15 — FTD-06/08/15 gelées, FTD-27/28/29 ajoutées
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-23 02:21:27 +03:00
2a6ea10978
docs(changelog): triage FTD v1.14
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-23 01:44:59 +03:00
a0352457dc
docs(tech-debt): triage FTD v1.14 — 17→15 actives
...
Fermées : FTD-04 (miroir docs, accepté ADR 004), FTD-05 (scaffold
caduc, audit clean), FTD-20 (GET /simulations/:id livré Sprint 3.6a),
FTD-22 (code orphelin /sujets, résolution complète).
Ajoutées : FTD-25 (ARCHITECTURE.md §3 désaligné), FTD-26
(cohabitation shared/ui vs shared/components/ui).
Cap de 15 FTD actives respecté.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-23 01:42:11 +03:00
a60c298605
feat(progression): page /progression + section Dashboard Premium — patterns, exercices long terme, indice de préparation (Sprint 3.6c)
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-22 23:12:23 +03:00
a752029c19
feat(historique): page /historique — liste paginée des productions + gating plan (Sprint 3.7)
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-22 21:29:32 +03:00
da4e465125
fix(navigation): correctifs flux retour post-rapport et post-sujets (reset sticky useEffect)
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-22 20:15:53 +03:00
f51caa1b75
feat(rapport): Sprint 3.6b — RapportPage enrichie, exercices dynamiques, production modèle, sélecteur NCLC
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-22 20:14:38 +03:00
8390e8b873
feat(corrections): Sprint 3.6a — nouveaux prompts + taxonomie erreurs + génération parallèle
...
Côté frontend : timeout corrections 30→60s (aligné avec backend 55s),
FTD-23 documentée, TAXONOMIE_ERREURS.md ajouté.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-22 17:28:02 +03:00
18f92098cb
refactor(simulation-ee): Sprint 3.5 clean — FTD-17/18/19 résolus, factorisation SimulationForm
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-22 14:03:46 +03:00
385b29679e
docs: Session Clean + ROADMAP sprints X.5 (refactoring obligatoire)
2026-04-21 05:14:57 +03:00
656b42e6c4
docs: FTD-21 résolu partiellement pour /simulation/ee
2026-04-21 04:54:09 +03:00
ae8d8af1df
feat(simulations): resume session + RapportPage tolère rapport=null (FTD-21)
2026-04-21 04:52:51 +03:00
aaecc3f804
feat(simulations): resume session depuis localStorage (FTD-21)
2026-04-21 04:02:15 +03:00
549e5f698f
feat(simulations): autosave 30s + localStorage + reprise contenu (FTD-21)
2026-04-21 03:57:10 +03:00
d395a04193
feat(production): types SimulationState + API autosave/updateSujet (FTD-21)
2026-04-21 03:51:16 +03:00
95711a7c44
docs(tech-debt): FTD-21 documentation complète persistance session
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-21 03:34:49 +03:00
886ecbb433
docs(changelog): tâche G5 — suggestions d'idées DeepSeek
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-21 03:24:39 +03:00
dee3c181f6
feat(simulations): bouton Suggestions d'idées + modal DeepSeek (G5)
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-21 03:24:17 +03:00
67eb3411c5
feat(simulations): getIdees API + hook useIdees (G5)
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-21 03:09:01 +03:00
555dac17e2
docs(changelog): G4 + refonte page sujets + fix quota simulations
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-21 02:56:45 +03:00
4712a3a16e
refactor(simulations): supprimer SujetSelector + selectSujet orphelins (FTD-22)
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-21 02:56:02 +03:00
6bfdf15db9
feat(simulations): finaliser flux /sujets — SimulationForm + SujetDisplay + TaskSelector type prop
...
- SimulationForm : bouton "Changer de sujet" → /sujets (étape 3 refonte)
- SujetDisplay : redevient présentationnel (plus de dropdown)
- TaskSelector : prop type 'EE' | 'EO' (EO_CARDS réservé usage futur — non routé)
- SimulationPage : type='EE' hardcodé (EO restera ComingSoon jusqu'au Sprint EO)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-21 02:48:48 +03:00
43f3ce2c6c
fix(simulations): TaskSelector EE — retirer cartes EO
2026-04-21 02:36:28 +03:00
a6f95c2093
feat(simulations): router /sujets + SimulationFlowProvider wiring + useSimulation refacto
2026-04-21 02:19:43 +03:00
782439b309
feat(simulations): SimulationFlowProvider + SujetsPage + SujetCard
2026-04-21 02:14:19 +03:00
7902eec042
feat(simulations): choix du sujet — dropdown intégré + bouton aléatoire
2026-04-21 02:06:08 +03:00
477477b6a6
feat(simulations): hook useSujets + composant SujetSelector
2026-04-21 01:09:27 +03:00
4245d0bcf1
feat(production): getSujets() — GET /sujets?mode=&tache=
2026-04-21 01:07:30 +03:00
021b9d35ea
docs(changelog): tâches G2+G3 — clavier + minuteur
2026-04-21 00:47:24 +03:00
c5b433749d
feat(simulations): minuteur + limites mots + clavier sticky + bouton Soumettre
2026-04-21 00:40:13 +03:00
41d2eec3f7
feat(simulations): composants TimerDisplay + WordCountBar
2026-04-21 00:18:33 +03:00
24968f542d
feat(simulations): config par tâche + hook useTimer + 7 tests
2026-04-21 00:16:38 +03:00
869668a1ba
feat(simulations): clavier caractères spéciaux sticky + flex-wrap + auto-resize textarea
2026-04-20 23:54:42 +03:00