044a305019
docs(t2-live): cloture documentaire Sprint 6e
...
CI / quality (push) Waiting to run
- CHANGELOG : bloc Sprint 6e (Voie A, Bugs 4/5/6, indicateur, cleanup, removed).
- PARCOURS : section 4 T2 Live (notes + gating 30 mots, candidat initie, timers prepa/dialogue).
- ROADMAP : Sprint 6 marque livre (6b/6c/6e).
- GOLDEN_DATASET : D3 corrige (candidat en premier) + annotations Groupe D (D6 partiel, D7-D11 sprints futurs).
2026-06-29 14:35:43 +03:00
1d95166611
Sprint 6c — Frontend T2 Live UI + state machine + integration
...
feat(t2-live): state machine pure 9 states x 8 events (resolves FTD-09)
feat(t2-live): useT2LiveSession WS orchestrator + audio hooks + close codes
feat(t2-live): T2SujetsPage, T2PreparationPage (2min timer + notes + ideas),
T2DialoguePage (3:30 dialogue + terminal screen with WAV download)
feat(t2-live): T2LiveContext provider for sujet sharing between pages
fix(TaskSelector): unlock EO_T2_LIVE card via hasAccess (resolves FTD-33)
chore: Tache type + labels + config extended with EO_T2_LIVE
test: 21 t2-machine tests — 259/259 green (+21)
2026-04-26 20:32:02 +03:00
7862f7c9f3
Sprint 6b — Frontend audio capture + playback hooks
...
feat(audio): pcm-capture-processor.js AudioWorklet (16kHz resample, Int16 LE)
feat(hooks): useAudioCapture (getUserMedia + worklet + onChunk base64)
feat(hooks): useAudioPlayback (24kHz sequential scheduling, gap-free)
feat(hooks): useAudioRecording (chronological buffer, resample 16→24k, WAV export)
feat(lib): audio-utils (base64, int16/float32, resample, WAV header)
test: 12 audio-utils + 7 useAudioRecording = 238/238 green (+19)
2026-04-26 20:12:36 +03:00
5a31819bca
Sprint 5.5 Clean FTD — triage 21→14 actives (cap 15)
...
fix(StatCards): replace plan === 'free' with !hasAccess(plan, 'dashboard') (FTD-39)
refactor(useAudioRecorder): move optionsRef assignment to useEffect (FTD-38)
docs(TECH_DEBT): v1.27 — freeze FTD-09/33/42, close FTD-14/35/38/39
2026-04-26 19:04:40 +03:00
3a3fa6272d
docs(sprint-5): CHANGELOG + ROADMAP + TECH_DEBT (Sprint 5e clean)
...
- CHANGELOG: entrées Sprint 5b/5c/5d (198 → 219 tests)
- ROADMAP: Sprint 5 Billing marqué ✅
- TECH_DEBT: FTD-42 (modal prorata) + FTD-43 (race webhook) ouvertes. v1.26. 21 FTD actives.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-26 05:57:15 +03:00
04019f8348
feat(rapport/eo): support 5 critères × /4 — Phonologie (Sprint 4.8 frontend)
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-26 03:30:49 +03:00
d8bae9520c
feat(simulations/eo): waveform + timeline colorée pendant l'enregistrement (Sprint 4.6)
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-26 00:04:03 +03:00
9614f9de14
docs(changelog): session 2026-04-25 — Sprint 4.5 Clean + fixes Golden Dataset
2026-04-25 21:19:37 +03:00
06fbfe3f9b
fix(rapport): patch temporaire conclusion conseil_nclc quand NCLC dépassé (FTD-40, FTD-41)
2026-04-25 21:16:00 +03:00
5188714235
docs(architecture): refléter l'arborescence réelle + documenter convention shared/ui (FTD-25, FTD-26)
2026-04-25 17:59:10 +03:00
8175438eea
docs: add sprints 4.6/4.7/4.8 to ROADMAP (EO UI, historique, phonologie)
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-25 09:03:05 +03:00
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
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
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
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
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
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
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
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
021b9d35ea
docs(changelog): tâches G2+G3 — clavier + minuteur
2026-04-21 00:47:24 +03:00
6a40e9a4c0
docs(changelog): tâche G1 — affichage consigne
2026-04-20 23:19:36 +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
ef86da85d7
docs(tech-debt): FTD-20 🔴 — GET /simulations/:id manquant backend
2026-04-20 03:46:36 +03:00
d7b084d05a
docs(sprint-0.5-bis): TECH_DEBT v1.6 (FTD-18/19) + CHANGELOG
2026-04-20 02:37:46 +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
38777796aa
feat(auth): useAuth + ProtectedRoute + signUp dans auth-client (Sprint 1 étape 2)
2026-04-18 02:09:46 +03:00
ee6d679950
feat(shared): ThemeToggle + Logo + design system rules (Sprint 0.5 étape 8)
2026-04-18 01:33:24 +03:00
f343fb4696
docs: enrichir ARCHITECTURE, DEVELOPMENT_PRINCIPLES, GOLDEN_DATASET, TESTS_AUTOMATISES, TEST_ENVIRONMENT
2026-04-17 18:35:50 +03:00
52b8e9d011
docs: ajouter ONBOARDING, SECURITY, CHANGELOG, ADR 001-006
2026-04-17 18:35:15 +03:00
28c9c08d31
fix(build): upgrade Vitest 3.2.4 → 4.1.4 + script typecheck tsc -b + FTD-13
2026-04-17 18:29:13 +03:00
2d7caf041a
refactor(style): réduire index.css au @import + ajouter FTD-10/11/12
2026-04-17 18:14:40 +03:00