From 39b633d1e3a65cd9ae1b1d73e3f777b8d4b86800 Mon Sep 17 00:00:00 2001 From: Hermann_Kitio Date: Thu, 23 Apr 2026 02:39:29 +0300 Subject: [PATCH] docs: fermeture FTD-27 (CI backend), TECH_DEBT v1.17 Co-Authored-By: Claude Opus 4.7 (1M context) --- docs/CHANGELOG.md | 8 ++++++++ docs/TECH_DEBT.md | 19 +++---------------- 2 files changed, 11 insertions(+), 16 deletions(-) diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index 35ad9fe..b20646d 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -29,6 +29,14 @@ Chaque entrée suit ce format : --- +## [Unreleased] — 2026-04-23 — FTD-27 — CI backend + +### Added +- `expria-backend/.github/workflows/ci.yml` — CI GitHub Actions (test + audit, Node 22). CI verte au premier run. +- FTD-27 fermée dans TECH_DEBT.md (v1.17). + +--- + ## [Unreleased] — 2026-04-23 — FTD-29 — Dependabot config ### Added diff --git a/docs/TECH_DEBT.md b/docs/TECH_DEBT.md index 09fac87..181d0fd 100644 --- a/docs/TECH_DEBT.md +++ b/docs/TECH_DEBT.md @@ -1,6 +1,6 @@ # TECH_DEBT.md — Expria Frontend -> **Document de référence — Version 1.16** +> **Document de référence — Version 1.17** > Ce document recense les décisions techniques prises par pragmatisme qui devront être revisitées, les stubs temporaires, et les fonctionnalités reportées. > À mettre à jour après chaque session de développement. > @@ -192,21 +192,6 @@ Risque : confusion pour un futur dev sur quel composant utiliser. --- -### FTD-27 — CI GitHub Actions pour `expria-backend` -**Priorité :** 🔴 Critique -**Statut :** Ouvert -**Estimation de session :** 2h -**Description :** Le backend n'a aucune CI. Aucun typecheck, test, ni audit ne s'exécute automatiquement. Le backend gère Stripe, JWT, permissions — c'est le dépôt le plus sensible. - -**À faire :** créer `.github/workflows/ci.yml` dans `expria-backend` avec jobs : -- `typecheck` (`tsc --noEmit`) -- `test` (`vitest run`) -- `audit` (`npm audit --audit-level=high`) - -**Condition de résolution :** CI verte sur le prochain push backend. - ---- - ### FTD-28 — Semgrep dans CI frontend + backend **Priorité :** 🔴 Critique **Statut :** Ouvert @@ -387,6 +372,7 @@ Frontend : | FTD-04 | Documents miroir sans automatisation de synchronisation | 2026-04-23 | Risque accepté par design (ADR 004). Mitigation en place (Règle G, commentaire `SOURCE OF TRUTH`, tests de parité). Condition de ré-ouverture : si une divergence silencieuse cause 2+ bugs en production. | | FTD-05 | Ancien scaffold frontend possiblement caduc | 2026-04-23 | Audit Claude Code complet — aucun résidu scaffold Vite, aucun fichier orphelin, règles critiques (D, E, F, G, J + ADR 003/005) respectées. Désalignements documentaires traités via FTD-25 et FTD-26. | | FTD-29 | `.github/dependabot.yml` dans les 2 dépôts | 2026-04-23 | Fichier créé dans expria-frontend et expria-backend. Ecosystem npm, weekly, limit 10 PRs. Dependabot alerts + security updates activés via UI GitHub. | +| FTD-27 | CI GitHub Actions pour expria-backend | 2026-04-23 | Workflow créé : npm ci → test → audit. Node 22, trigger push/PR sur main. CI verte au premier run (21s). Observations : typecheck absent (O1), ESLint absent (O2), engines.node absent (O3) — à traiter en FTDs séparées. | | FTD-17 | Clé `['plan']` dupliquée entre features (`usePlan`, `SimulationPage`, `RapportPage`) | 2026-04-22 | Résolu au Sprint 3.5. Création de `src/entities/user/query-keys.ts` (constantes pures, aucun import runtime) exportant `PLAN_QUERY_KEY = ['plan'] as const`. `features/dashboard/hooks/usePlan.ts` l'importe et le re-exporte pour conserver la rétro-compatibilité de l'import `PLAN_QUERY_KEY`. `SimulationPage.tsx` et `RapportPage.tsx` remplacent leur `useQuery` inline par le hook `usePlan()` — dédup totale de la clé et de la config staleTime. | | FTD-18 | SimulationForm utilise encore le shadcn Button au lieu de la primitive `@/shared/ui/Button` | 2026-04-22 | Résolu au Sprint 3.5. Remplacement de l'import `@/shared/components/ui/button` par `@/shared/ui/Button` dans `SimulationForm.tsx`. Aucun variant à adapter (usage du Button sans prop `variant` → `primary` par défaut dans les deux implémentations). Les 7 autres consommateurs shadcn (`Login/RegisterPage`, `PaywallBanner`, `DesignSystemPage`, `ThemeToggle`, `dialog.tsx`) restent hors scope de cette FTD. | | FTD-19 | Token `--shadow-focus` absent de `src/index.css` | 2026-04-22 | Résolu au Sprint 3.5. Ajout de `--shadow-focus: 0 0 0 3px rgba(27, 79, 216, 0.18)` dans `@theme {}` (valeur conforme à `DESIGN_SYSTEM.md §2`) et `--shadow-focus: 0 0 0 3px rgba(91, 127, 255, 0.32)` dans `.dark {}` (recalculé sur la teinte expria dark `#5B7FFF`). Tailwind 4 génère automatiquement l'utility `shadow-focus`. Migration de 5 occurrences `ring-2 ring-expria/20` → `shadow-focus` dans `Button.tsx`, `Card.tsx`, `SimulationForm.tsx` (×3), `SpecialCharsKeyboard.tsx`. Factorisation bonus : className dupliquée des boutons secondaires de `SimulationForm` extraite en const `secondaryActionBtn`. | @@ -414,3 +400,4 @@ Frontend : | 1.14 | 2026-04-23 | Triage : FTD-04, FTD-05, FTD-20, FTD-22 fermées. FTD-25, FTD-26 ajoutées. 15 FTD actives (cap respecté). | | 1.15 | 2026-04-23 | Réorg sécurité : FTD-06, FTD-08, FTD-15 gelées (backlog post-MVP). FTD-27 🔴, FTD-28 🔴, FTD-29 🟡 ajoutées (sécurité). 15 FTD actives (cap respecté). | | 1.16 | 2026-04-23 | FTD-29 fermée (Dependabot config). 14 FTD actives. | +| 1.17 | 2026-04-23 | FTD-27 fermée (CI backend). 13 FTD actives. |