- guide-page-equipe.md: Architecture basee sur team-block-script.js
- architecture.md: Mise a jour structure et fonctionnement
- deploiement.md: Scripts Python pour Navigation et _document
- team-block-script.js: Utilise layout cose integre (pas cose-bilkent)
- Nouvelle approche: remplace le DOM apres chargement (defer-compatible)
- Charge Cytoscape, ECharts dynamiquement
- Initialise les 3 visualisations: graphe reseau, matrice congestion, equipe genese
- Ajout de patch_document.py pour inclure le script dans _document.tsx
- Plus de dépendance aux fichiers externes HTML
- Utilise sessionStorage pour éviter les boucles
- document.write() pour remplacer complètement la page
document.write() après chargement cause un rechargement de page.
Solution: créer un iframe plein écran avec data:text/html;base64
L'iframe est un contexte isolé, pas de boucle possible.
Le reverse proxy intercepte toutes les requêtes.
Solution: encoder le HTML en base64 et le décoder avec atob()
Plus aucune requête HTTP pour le contenu de la page équipe.
Le reverse proxy redirige /team.html vers /team, créant une boucle.
Solution: fetch le contenu de team.html et l'injecter dans le DOM
avec document.write() pour remplacer complètement la page.
- Ne plus vérifier si le fichier existe (les rings pourraient être obsolètes)
- Régénérer systématiquement avec les bons rings adopt/trial/assess/hold
- Mise à jour des données de visualisation avec les nouveaux rings
- Suppression copie team-static.html du Dockerfile (plus nécessaire)
- Suppression vérifications team-static.html des logs de build
- Suppression fichier public/team-static.html (intégration directe)
Nettoyage suite à l'intégration directe du HTML dans la page React
- Nouvelle page team-static.html : page HTML pure sans React
- team.tsx redirige simplement vers /team-static.html
- Évite tous les conflits d'injection DOM dans React
- team-static.html copié dans out/ lors du build
- Contient tous les logs de débogage et visualisations équipe
Cette approche contourne complètement les problèmes React/DOM
- Log au chargement des scripts externes (Cytoscape, ECharts)
- Log au démarrage de loadData()
- Log au début de chaque fonction d'initialisation
- Vérifications de disponibilité des données
Ces logs permettront de voir exactement où le processus bloque :
- Scripts externes se chargent-ils ?
- Données se chargent-elles ?
- Fonctions d'initialisation s'exécutent-elles ?
- Graphiques se créent-ils ?
- Logs console détaillés dans team.html pour diagnostiquer le chargement
- Message de fallback informatif si données non chargées
- Vérifications build pour team-visualization-data.json
- Diagnostic pour identifier pourquoi les visualisations n'apparaissent pas
Les logs console aideront à identifier si le problème vient :
- Du chargement des données JSON
- De l'initialisation des graphiques Cytoscape/ECharts
- De l'accès aux fichiers statiques
- Page team.tsx fait redirection immédiate vers /team.html (évite conflits React)
- Ajout bouton retour dans header de team.html vers l'accueil
- Évite tous les conflits entre scripts JavaScript et React
Cette approche simple devrait :
- Afficher les visualisations équipe correctement
- Permettre la navigation retour avec le bouton ajouté
- Page team.tsx rend directement l'iframe dans React (pas de manipulation DOM)
- Script bloqueur plus sélectif : bloque seulement strategie-script.js
- Permet les scripts de navigation essentiels
- Évite les conflits avec les scripts JavaScript
Cette approche devrait :
- Afficher les visualisations équipe correctement
- Garder la navigation fonctionnelle (logo vers accueil)
- Nouveau script team-block-script.js chargé en premier (config-business.json)
- Bloqueur absolu qui empêche tout autre script sur /team
- Page team.tsx encore plus agressive (remplacement useEffect)
- Double protection dans strategie-script.js
- Script principal bloqué si __blockTeamPages=true
Cette approche à couches multiples devrait définitivement résoudre :
- Les deux liens équipe (1 seul)
- L'affichage radar au lieu des visualisations
- Page Next.js simplifiée au maximum pour éviter erreurs compilation
- Remplacement immédiat du body par l'iframe côté client
- Protection absolue dans strategie-script.js contre les pages équipe
- Script bloqué complètement sur toute URL contenant /team
Ces changements devraient définitivement résoudre :
- Les deux liens équipe (1 seul lien Next.js)
- L'affichage radar au lieu des visualisations équipe
- Protection contre exécution sur pages Next.js (détection __NEXT_DATA__)
- Suppression de l'interception des clics sur /team (Next.js gère maintenant)
- Désactivation de checkTeamRouteImmediately()
- Désactivation de showTeamPage()
- Suppression de la gestion popstate pour /team
- Script ne gère plus que les pages HTML pures (stratégie, business, etc.)
Cela élimine le deuxième lien et permet à Next.js d'afficher correctement /team
- Vérification de /team au tout début du script (avant Fast Refresh protection)
- Triple nettoyage dans le script Python (3 patterns différents)
- Redirection immédiate vers /team.html sans attendre
Cela devrait enfin fonctionner car :
- Le script s'exécute en premier
- Tous les formats de liens sont supprimés
- La redirection est immédiate
- Vérification immédiate de /team au chargement du script (avant Next.js)
- Interception des clics en phase de capture (avant Next.js)
- Nettoyage supplémentaire dans le script Python si des liens persistent
- Affichage immédiat sans attendre le header
Cela devrait enfin résoudre les deux problèmes persistants
- Vérification immédiate de la route /team au chargement du script (avant Next.js)
- Interception des clics sur les liens /team en phase de capture (avant Next.js)
- Nettoyage supplémentaire dans le script Python si des liens persistent
- Affichage immédiat de la page équipe sans attendre le header
Cela devrait résoudre :
- Les deux liens (nettoyage supplémentaire si nécessaire)
- L'affichage du radar (interception avant Next.js + vérification immédiate)
- Gestion du popstate pour la route /team
- Amélioration du script Python avec regex pour détecter tous les formats de liens team
- La fonction showTeamPage() est maintenant appelée correctement lors de la navigation
- Ajout de showTeamPage() dans strategie-script.js pour gérer /team
- La route /team remplace maintenant le body par l'iframe team.html
- Amélioration du script Python avec regex pour détecter tous les formats de liens
- Gestion du popstate pour la route /team
Cela corrige :
- Les deux liens (détection améliorée avec regex)
- L'affichage du radar au lieu des visualisations (remplacement du body par l'iframe)
- désactivation de addLinksToHeader() dans strategie-script.js
- désactivation de addStrategyLinkToHeader() dans strategie-link.js
- tous les liens de navigation sont maintenant gérés uniquement par Navigation.tsx
- évite les doublons de liens (Équipe, Stratégie, etc.)
- Utilisation de MutationObserver pour détecter quand le header est ajouté au DOM
- Timeout de sécurité après 5 secondes
- Amélioration de la logique d'initialisation pour éviter les exécutions multiples
- Logs détaillés pour diagnostic
- Logs dans initWhenReady() pour voir si le header est trouvé
- Logs dans addLinksToHeader() pour voir si la fonction est appelée
- Retry avec limite de 10 tentatives pour trouver le header
- Logs pour vérifier l'ajout du lien Équipe
- Amélioration de la copie de team.html avec vérifications et logs
- Fonction initWhenReady() pour attendre que le header soit disponible
- Logs de debug pour vérifier l'ajout du lien Équipe
- Vérification de l'existence des fichiers avant copie dans out/
- Correction logique addLinksToHeader() pour éviter retour prématuré
- Utilisation d'un conteneur dédié pour les liens de navigation
- Copie explicite de team.html et team-visualization-data.json dans out/ après build
- Le lien Équipe s'affiche maintenant correctement dans le header
- Création du script generate-team-visualization-data.js pour générer les données JSON
- Page /team.html avec 3 visualisations :
* Graphe réseau (Cytoscape.js) : technologies ↔ membres
* Matrice de congestion : technologies core et disponibilité
* Équipe de genèse MVP : sélection automatique pour MVP 2 mois
- Ajout du lien '👥 Équipe' dans le header du radar
- Données JSON générées pour visualisations interactives
- Identification des congestions et technologies non couvertes
- Interception de fetch et XMLHttpRequest pour bloquer les requêtes webpack.hot-update.json
- Cela empêche Fast Refresh de déclencher des rechargements en boucle
- Ajout de NEXT_DISABLE_FAST_REFRESH dans start-business.sh (si supporté par Next.js)
- Les requêtes webpack hot-update sont maintenant ignorées silencieusement
- Retrait de la modification de document.documentElement.style.display qui déclenchait des rechargements
- Ajout d'une vérification pour éviter l'exécution pendant les erreurs de rechargement
- Cela devrait réduire les rechargements en boucle causés par Fast Refresh
- Ajout de protections contre les exécutions multiples de initStrategyLinks()
- Protection globale avec window.__strategieScriptLoaded pour éviter la réexécution du script
- Vérification dans addLinksToHeader() pour éviter d'ajouter les liens plusieurs fois
- Gestion correcte du flag isInitialized lors des retours au radar
- Cela devrait résoudre les problèmes de Fast Refresh qui causent des rechargements en boucle
- Création de docs/app/ pour la documentation de l'application
- Création de docs/data/ pour les données utilisées par l'application
- Déplacement de la documentation technique vers docs/app/
- Déplacement des données métier vers docs/data/
- Mise à jour de tous les liens et références dans les fichiers
- Mise à jour des scripts (extract-technologies.js, analyze-business-metrics.js)
- Mise à jour des fichiers JavaScript (custom.js, strategie-link.js)
- Création de README.md dans docs/, docs/app/ et docs/data/
- Mise à jour du Readme.md principal avec les nouveaux chemins
- Script serve-business.sh configuré pour port 3004
- Bouton stratégie en haut de page
- Contenu complet de strategie-evolution-technique.md intégré
- Conversion Markdown vers HTML avec styles