|
|
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 |
|
|
|
4f786dd44b
|
feat(simulations): composant clavier caractères spéciaux français
|
2026-04-20 23:37:58 +03:00 |
|
|
|
6a40e9a4c0
|
docs(changelog): tâche G1 — affichage consigne
|
2026-04-20 23:19:36 +03:00 |
|
|
|
e449661ee0
|
feat(simulations): afficher la consigne du sujet au-dessus de la textarea
|
2026-04-20 23:15:13 +03:00 |
|
|
|
b356bc7109
|
feat(simulations): exposer sujet dans useSimulation + composant SujetDisplay
|
2026-04-20 23:09:35 +03:00 |
|
|
|
e130d3792e
|
feat(production): exposer SujetData dans Production + FTD-21 persistance session
|
2026-04-20 23:05:01 +03:00 |
|
|
|
b16dbfa1c8
|
docs(changelog): session alignement types Report ↔ backend
|
2026-04-20 06:05:20 +03:00 |
|
|
|
fb3de2865f
|
fix(report): aligner types sur backend — note→score, exercices string[], supprimer Exercice
|
2026-04-20 06:01:29 +03:00 |
|
|
|
ef86da85d7
|
docs(tech-debt): FTD-20 🔴 — GET /simulations/:id manquant backend
|
2026-04-20 03:46:36 +03:00 |
|
|
|
47d5ec9524
|
feat(simulations): RapportPage avec floutage conditionnel — Sprint 3 étape 15
|
2026-04-20 03:46:18 +03:00 |
|
|
|
1dbca24c35
|
fix(report): aligner payloads corrections/ee et eo sur contrat backend réel
|
2026-04-20 03:45:52 +03:00 |
|
|
|
d7b084d05a
|
docs(sprint-0.5-bis): TECH_DEBT v1.6 (FTD-18/19) + CHANGELOG
|
2026-04-20 02:37:46 +03:00 |
|
|
|
8450265449
|
feat(sprint-0.5-bis): AppLayout + primitives UI + refonte pages
- AppLayout (sidebar fixe, drawer mobile, BottomNav)
- MobileHeader sticky + Sidebar avec verrouillage hasAccess()
- Primitives src/shared/ui/ : Button, Card, Badge
- SimulationPage + DashboardPage : suppression headers internes
- TaskSelector : Card interactive + Badge EE/EO + eyebrow
- router.tsx : layout routes + ComingSoon inline
|
2026-04-20 02:37:19 +03:00 |
|
|
|
997f39bd33
|
feat(simulations): useSimulation hook + TaskSelector + SimulationForm + SimulationPage + route (Sprint 3 étape 14)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-04-20 00:08:34 +03:00 |
|
|
|
b31e8666a5
|
feat(entities): production + report — types, lib, api, tests floutage (Sprint 3 étape 13)
|
2026-04-19 03:37:41 +03:00 |
|
|
|
ca4291d7eb
|
feat(app): implement MAINTENANCE_MODE + configure Claude Code security hooks
- Add VITE_MAINTENANCE_MODE guard in main.tsx (no providers mount when true)
- Create static MaintenancePage.tsx (Direction H tokens, zero dependencies)
- Register VITE_MAINTENANCE_MODE in env.ts (optional, defaults to false)
- Add PreToolUse security hook (9 patterns from SECURITY.md §2)
- Add Stop hook for file size check (>200 lines warning)
- Register Semgrep MCP server
- Update ARCHITECTURE.md §7 (new env var)
- Resolve FTD-16 in TECH_DEBT.md
|
2026-04-19 02:31:32 +03:00 |
|
|
|
bf778a5a4d
|
feat(dashboard): PaywallBanner + DashboardPage conditionnel (Sprint 1 étape 5)
|
2026-04-18 02:50:34 +03:00 |
|
|
|
d0f77e04f9
|
feat(app): câbler router Sprint 1 — login/register/dashboard + redirect / (étape 4)
|
2026-04-18 02:23:05 +03:00 |
|
|
|
464eb27f1e
|
feat(auth): LoginPage + RegisterPage (Sprint 1 étape 3)
|
2026-04-18 02:13:08 +03:00 |
|
|
|
38777796aa
|
feat(auth): useAuth + ProtectedRoute + signUp dans auth-client (Sprint 1 étape 2)
|
2026-04-18 02:09:46 +03:00 |
|
|
|
107a37d197
|
feat(entities/user): PlanStatus + getPlanStatus + hook usePlan (Sprint 1 étape 1)
Fondations data plan utilisateur pour le dashboard conditionnel :
- entities/user/types.ts : interface PlanStatus (plan, permissions, simulations_used/remaining, plan_expires_at)
- entities/user/api.ts : getPlanStatus() via apiFetch<PlanStatus>('/plans/status')
- features/dashboard/hooks/usePlan.ts : useQuery + PLAN_QUERY_KEY + staleTime 5 min
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
2026-04-18 02:00:12 +03:00 |
|
|
|
b246f89903
|
fix(lint): eslint-disable react-refresh sur exports cva (badge, button)
|
2026-04-18 01:36:16 +03:00 |
|
|
|
ee6d679950
|
feat(shared): ThemeToggle + Logo + design system rules (Sprint 0.5 étape 8)
|
2026-04-18 01:33:24 +03:00 |
|
|
|
7dfd0df6b3
|
feat(design-system): page /design-system dev-only — palette live + composants (Sprint 0.5 étape 7)
|
2026-04-18 01:25:54 +03:00 |
|