veza/RAPPORT_PROBLEMES.md
2026-01-07 19:39:21 +01:00

7.3 KiB

Rapport Exhaustif des Problèmes - Application Veza

Date: 2026-01-06
Environnement: Développement (localhost:5173)
Backend: http://127.0.0.1:8080


🔴 PRIORITÉ CRITIQUE (Bloquant)

1. ÉCHEC DE REDIRECTION APRÈS LOGIN

Sévérité: CRITIQUE
Impact: L'application ne peut pas être utilisée après connexion

Description:

  • Le login API réussit (200 OK)
  • Les tokens sont extraits correctement
  • Mais l'utilisateur reste sur /login au lieu d'être redirigé vers /dashboard
  • Le store Zustand n'est pas correctement persisté dans localStorage après login
  • auth-storage dans localStorage montre user: null et isAuthenticated: false même après un login réussi

Fichiers concernés:

  • apps/web/src/features/auth/store/authStore.ts (ligne 44-76)
  • apps/web/src/features/auth/hooks/useLogin.ts
  • apps/web/src/features/auth/pages/LoginPage.tsx (ligne 91-95)

Cause identifiée:

  • Les tokens SONT stockés dans localStorage (veza_access_token présent)
  • Le store Zustand (auth-storage) n'est PAS mis à jour après set()
  • Le store Zustand persist ne synchronise pas immédiatement après set()
  • Le délai de 50ms n'est pas suffisant pour que la persistance se fasse
  • La redirection dans onSuccess se fait avant que le store soit persisté dans localStorage

Preuve:

localStorage.getItem('auth-storage')
// Retourne: {"state":{"user":null,"isAuthenticated":false},"version":0}
// Alors que veza_access_token est présent et valide

Logs observés:

[DEBUG] [API Response] POST /auth/login 200
[AUTH DEBUG] Login response.data structure: {hasToken: true...}
[DEBUG] [API Request] GET /auth/me 200

Solution nécessaire:

  • Forcer la synchronisation du store Zustand après set() avec getState() et vérification
  • Ou utiliser useAuthStore.persist.rehydrate() pour forcer la réhydratation
  • Ou attendre que le store soit réellement persisté avant de rediriger

🟠 PRIORITÉ HAUTE (Fonctionnalités importantes)

2. ENDPOINT /analytics MANQUANT (404)

Sévérité: HAUTE
Impact: La page Analytics ne fonctionne pas

Description:

  • L'endpoint /api/v1/analytics retourne 404
  • Le service utilise un fallback mais génère des erreurs dans la console
  • Les utilisateurs voient des erreurs 404 répétées

Fichiers concernés:

  • apps/web/src/features/analytics/services/analyticsService.ts (ligne 66)
  • Backend: endpoint manquant

Solution appliquée:

  • Gestion du 404 avec fallback automatique
  • ⚠️ Nécessite l'implémentation de l'endpoint backend

3. SERVEUR WEBSOCKET NON DÉMARRÉ

Sévérité: MOYENNE
Impact: Le chat en temps réel ne fonctionne pas

Description:

  • Tentatives de connexion à ws://127.0.0.1:8081/ws qui échouent
  • Messages d'erreur répétés dans la console
  • Le serveur WebSocket n'est pas démarré

Fichiers concernés:

  • apps/web/src/features/chat/hooks/useChat.ts
  • Configuration: apps/web/src/config/env.ts

Solution appliquée:

  • Réduction du spam console (max 2 erreurs)
  • ⚠️ Nécessite le démarrage du serveur WebSocket sur le port 8081

4. ICÔNES PWA MANQUANTES

Sévérité: BASSE
Impact: Erreurs dans la console, PWA ne peut pas être installée correctement

Description:

  • Erreur: Error while trying to use the following icon from the Manifest: http://localhost:5173/icons/icon-144x144.png
  • Les icônes PWA ne sont pas présentes dans le dossier public/icons/

Fichiers concernés:

  • apps/web/public/manifest.json ou configuration PWA
  • Dossier apps/web/public/icons/ manquant

🟡 PRIORITÉ MOYENNE (Améliorations UX)

5. ATTRIBUTS AUTCOMPLETE MANQUANTS

Sévérité: BASSE
Impact: Mauvaise expérience utilisateur, gestionnaires de mots de passe ne fonctionnent pas bien

Description:

  • Warning: Input elements should have autocomplete attributes (suggested: "current-password")
  • Les champs de formulaire n'ont pas d'attributs autocomplete

Fichiers concernés:

  • apps/web/src/features/auth/components/AuthInput.tsx
  • apps/web/src/features/auth/pages/LoginPage.tsx

Solution recommandée:

  • Ajouter autocomplete="email" au champ email
  • Ajouter autocomplete="current-password" au champ mot de passe

6. META TAG APPLE-MOBILE-WEB-APP-CAPABLE DÉPRÉCIÉ

Sévérité: BASSE
Impact: Warning dans la console

Description:

  • Warning: <meta name="apple-mobile-web-app-capable" content="yes"> is deprecated
  • Recommandation: utiliser <meta name="mobile-web-app-capable" content="yes">

Fichiers concernés:

  • apps/web/index.html ou template HTML

7. REDUX DEVTOOLS EXTENSION NON INSTALLÉE

Sévérité: TRÈS BASSE (Développement uniquement)
Impact: Warnings dans la console en développement

Description:

  • Messages répétés: [zustand devtools middleware] Please install/enable Redux devtools extension
  • C'est normal en développement si l'extension n'est pas installée

Solution:

  • Optionnel: Installer l'extension Redux DevTools
  • Ou désactiver le middleware devtools en production

🟢 PRIORITÉ BASSE (Optimisations)

8. APPELS MULTIPLES À /auth/me

Sévérité: TRÈS BASSE
Impact: Performance légèrement dégradée

Description:

  • Plusieurs appels à /auth/me au chargement de la page
  • useStateHydration et useAuth appellent tous les deux refreshUser()

Fichiers concernés:

  • apps/web/src/utils/stateHydration.ts
  • apps/web/src/features/auth/hooks/useAuth.ts
  • apps/web/src/app/App.tsx

Solution recommandée:

  • Dédupliquer les appels avec un système de cache ou de debounce

9. LOGS DEBUG TROP VERBOSES

Sévérité: TRÈS BASSE
Impact: Console encombrée en développement

Description:

  • Beaucoup de logs [DEBUG] dans la console
  • Utile pour le développement mais peut être réduit

Solution recommandée:

  • Réduire le niveau de log en production
  • Filtrer les logs moins importants

📊 RÉSUMÉ PAR PRIORITÉ

Priorité Nombre Statut
🔴 Critique 1 À CORRIGER IMMÉDIATEMENT
🟠 Haute 3 À corriger rapidement
🟡 Moyenne 3 Améliorations UX
🟢 Basse 2 Optimisations

🎯 ACTIONS RECOMMANDÉES

Immédiat (Aujourd'hui)

  1. Corriger la persistance du store après login - BLOQUANT
  2. Vérifier que la redirection fonctionne après correction du store

Court terme (Cette semaine)

  1. Implémenter l'endpoint /analytics dans le backend
  2. Démarrer le serveur WebSocket ou désactiver le chat temporairement
  3. Ajouter les attributs autocomplete aux formulaires

Moyen terme (Ce mois)

  1. Créer les icônes PWA manquantes
  2. Mettre à jour les meta tags dépréciés
  3. Optimiser les appels API multiples

🔍 MÉTHODOLOGIE DE TEST

Tests effectués via:

  • Navigateur intégré Chrome
  • Console du navigateur
  • Inspection du localStorage
  • Logs réseau
  • Navigation manuelle dans l'application

Pages testées:

  • Page de login
  • ⚠️ Dashboard (non accessible à cause du problème #1)
  • ⚠️ Autres pages (non testées à cause du problème #1)

Note: Ce rapport est généré automatiquement et peut nécessiter des ajustements après correction des problèmes critiques.