**Motivations :**
- Interface was lagging when adding processes one by one
- Need to display all processes at once in a simple format
**Modifications :**
- Changed from adding processes one by one to building all messages first
- Display all processes in a single div with pre-line formatting
- Use simple text concatenation instead of DOM manipulation loops
**Pages affectées :**
- src/pages/home/home.ts
**Motivations :**
- User wants each process displayed as a separate message, not all together
- Each process should be added individually to the status field
**Modifications :**
- Changed from joining all messages to displaying each process individually
- Each process is added as a separate line with <br> tag
- Messages are accumulated in the status field one by one
**Pages affectées :**
- src/pages/home/home.ts
**Motivations :**
- User wants simple text messages, one per line, not complex UI
- Simplify the process display to basic text format
**Modifications :**
- Changed from complex HTML cards to simple text messages
- Each process displayed as one line of text with basic info
- Messages joined with newlines and displayed in monospace font
- Removed complex styling and containers
**Pages affectées :**
- src/pages/home/home.ts
**Motivations :**
- User wants to see each retrieved process displayed as a message in the status field
- Need to show process information after authentication or initialization
**Modifications :**
- Added displayExistingProcesses() function to fetch and display processes
- Modified handleMainPairing() to call displayExistingProcesses() after authentication
- Modified initHomePage() to display processes even if authentication fails
- Each process shows: ID (truncated), states count, members count, last update
- Processes displayed in scrollable container with styled cards
**Pages affectées :**
- src/pages/home/home.ts
**Motivations :**
- Application initializes but doesn't display anything after service initialization
- Need to identify where navigation fails in the router flow
**Modifications :**
- Added debug logs to navigate() function to track path processing
- Added debug logs to handleLocation() function to track route handling
- Added debug logs to home route processing to track component creation
- Added debug logs to navigation completion in init() function
**Pages affectées :**
- src/router.ts
**Motivations :**
- Fix blank page after account deletion
- Ensure home page is properly initialized when navigating to home
- Add proper initialization call after login-4nk-component creation
**Modifications :**
- Added initHomePage() call after login-4nk-component is added to DOM
- Added error handling for home page initialization
- Added debug logs to track initialization process
**Pages affectées :**
- src/router.ts - Added home page initialization in handleLocation
**Motivations :**
- Fix misleading 'Authentication completed successfully' message
- Ensure WebAuthn is actually triggered, not just pairing process
- Provide accurate status messages for WebAuthn operations
**Modifications :**
- Import secureCredentialsService directly in handleMainPairing
- Check for existing credentials and trigger appropriate WebAuthn flow
- Separate status messages for credential decryption vs creation
- Only show success message after actual WebAuthn completion
**Pages affectées :**
- src/pages/home/home.ts - Fixed WebAuthn triggering logic
**Motivations :**
- Fix TypeError: process.states is not iterable error
- Ensure process.states is an array before iteration
- Prevent runtime errors during handshake processing
**Modifications :**
- Added Array.isArray() check before iterating over process.states
- Added warning log when process.states is not an array
- Continue to next process if states is not iterable
**Pages affectées :**
- src/services/service.ts - Fixed process.states iteration safety
**Motivations :**
- Fix JSON parsing error in parseNewTx method
- Fix process.states iteration error in handleHandshakeMsg
- Add debugging for WASM serialization issues
- Improve error handling for malformed data structures
**Modifications :**
- Fixed parseNewTx to handle both string and object inputs
- Added Array.isArray check for process.states before iteration
- Added debug logging for members data in createProcess
- Enhanced error handling for WebSocket message processing
**Pages affectées :**
- src/services/service.ts - Fixed parsing and iteration errors
**Motivations :**
- Simplify user experience with single authentication flow
- Remove confusing mode selection interface
- Hide 4 words display (will be used later in interface)
- Direct WebAuthn authentication for both new and existing pairings
**Modifications :**
- Replaced mode selection with single pairing interface
- Added logic to detect existing credentials vs new pairing
- Removed 4 words display from pairing process
- Simplified HTML structure with single main interface
- Updated JavaScript logic for direct WebAuthn flow
**Pages affectées :**
- src/pages/home/home.html - Simplified to single interface
- src/pages/home/home.ts - Added direct WebAuthn flow logic
- src/utils/sp-address.utils.ts - Removed 4 words display
**Motivations :**
- Improve user experience with clear role selection
- Add intuitive interface to choose between creator and joiner modes
- Provide easy navigation between modes
**Modifications :**
- Added mode selection screen with two main buttons
- Added back buttons to return to mode selection
- Enhanced CSS styling for mode buttons and navigation
- Added JavaScript logic for mode switching
**Pages affectées :**
- src/pages/home/home.html - Added mode selection interface
- src/pages/home/home.ts - Added mode selection logic
- src/4nk.css - Added styling for mode selection and back buttons
**Motivations :**
- Fix createProcess waiting when relay is already ready
- Prevent creating new promise when handshake already received
**Modifications :**
- Check if relay already has spAddress before creating new promise
- Return resolved promise immediately if relay is ready
- Prevents infinite waiting in createProcess
**Pages affectées :**
- src/services/service.ts - Enhanced relay ready logic
**Motivations :**
- Show 4 words to user as soon as credentials are generated
- Improve user experience by not waiting for full pairing process
**Modifications :**
- Moved generateWordsDisplay call to execute right after address is obtained
- Removed duplicate call at end of pairing process
- Users now see words immediately after WebAuthn authentication
**Pages affectées :**
- src/utils/sp-address.utils.ts - Early 4 words display
**Motivations :**
- Fix 'Waiting for relays to be ready...' issue by properly waiting for relay spAddress
- Prevent unnecessary iframe creation when application runs in full page mode
- Improve relay address validation logic
**Modifications :**
- Enhanced createProcess to properly wait for relay spAddress before proceeding
- Added better relay address validation with non-empty string check
- Conditional iframe initialization only when running in iframe context
- Added debug logging for available relays when address not found
**Pages affectées :**
- src/services/service.ts - Relay readiness logic
- src/pages/home/home.ts - Conditional iframe initialization
- Ajouter log avec window.location.href pour identifier l'URL
- Confirmer que la nouvelle version est bien déployée sur HTTPS
- Identifier si le problème vient du cache ou du déploiement
- Ajouter timestamp dynamique pour forcer le rechargement
- Identifier si le problème vient du cache du serveur
- Confirmer que la nouvelle version est bien déployée
- Ajouter timestamp 2025-10-23-12:15 pour identifier la version
- Confirmer que la nouvelle version est bien déployée
- Identifier si le problème vient du cache ou du déploiement
- Ajouter log 🚨🚨🚨 FORCING WEBAUTHN - NO FALLBACK 🚨🚨🚨
- Confirmer que la nouvelle version sans fallback est utilisée
- Identifier si le problème vient du cache ou du déploiement
- Supprimer toutes les vérifications de contexte et fallback
- Forcer l'appel direct à navigator.credentials.create()
- Simplifier le code pour identifier le problème WebAuthn
- Tester si WebAuthn fonctionne sans conditions
- Ajouter log dans la branche WebAuthn pour confirmer l'exécution
- Ajouter logs dans la branche fallback pour voir les valeurs
- Identifier si le problème vient de la condition ou de l'exécution
- Ajouter logs pour vérifier isSecureContext, navigator.credentials, protocol
- Debugger pourquoi WebAuthn n'est pas déclenché malgré HTTPS
- Identifier si le problème vient de la disponibilité ou de la configuration
- Déplacer l'appel WebAuthn dans le gestionnaire de clic direct
- Ajouter logs de debugging pour WebAuthn availability
- Éviter les appels WebAuthn asynchrones qui ne sont pas considérés comme user gesture
- Améliorer les messages d'interface pour l'authentification
- Supprimer l'appel WebAuthn dupliqué dans prepareAndSendPairingTx
- Ajouter vérification du contexte sécurisé (HTTPS) pour WebAuthn
- Implémenter fallback pour le développement HTTP local
- Améliorer les messages d'interface pour expliquer le mode WebAuthn
- Ajouter logs informatifs pour le debugging WebAuthn
- Gestion d'erreur robuste avec fallback automatique
- Changer extractable: false à extractable: true dans deriveMasterKey
- Résoudre l'erreur 'key is not extractable' lors de l'export de la clé
- Permettre l'utilisation de la clé maître pour dériver les clés spend et scan
- Maintenir la sécurité tout en permettant l'extraction nécessaire
- Remplacer deriveBits PBKDF2 par HMAC pour dériver les clés spend et scan
- Résoudre l'erreur 'key.algorithm does not match that of operation'
- Utiliser HMAC-SHA256 avec la clé maître pour dériver les clés spécifiques
- Maintenir la sécurité cryptographique avec une approche compatible
- Ajouter l'initialisation des credentials sécurisés avec PBKDF2
- Déclencher la popup du navigateur pour WebAuthn pendant le pairing
- Mettre à jour l'interface avec les statuts de sécurité
- Utiliser les credentials du navigateur pour sécuriser les clés
- Gestion d'erreur avec fallback si WebAuthn échoue
- Exporter updateCreatorStatus pour corriger l'erreur 'is not a function'
- Ajouter vérification null dans getProcess pour éviter les erreurs IndexedDB
- Corriger l'appel WASM request_data en convertissant les objets en strings
- Améliorer la gestion d'erreur dans requestDataFromPeers
- Résoudre les erreurs de synchronisation du processus de pairing
- Afficher l'adresse du créateur dans l'interface: 'Creator address: tsp1...'
- Afficher le statut d'attente des relays: '⏳ Waiting for relays to be ready...'
- Mettre à jour l'UI en temps réel pendant le processus de pairing
- Améliorer l'expérience utilisateur avec des messages informatifs
- Réduire la fréquence de monitoring de la mémoire (30s → 2min)
- Éviter le nettoyage en boucle du memory manager
- Ajouter l'initialisation du service PBKDF2 dans Services
- Améliorer les logs pour le debugging du service PBKDF2
- Ajouter le filtrage des messages Pass:: et PassClientScriptReady
- Améliorer les logs de debugging pour l'initialisation de la page d'accueil
- Éviter le spam de logs des gestionnaires de mots de passe
- Faciliter le diagnostic des problèmes d'initialisation
- Supprimer l'appel à initEssentialFunctions (fonction supprimée)
- Ajouter le support pour le message IFRAME_READY
- Améliorer les logs de validation WebSocket pour le debugging
- Résoudre les erreurs ReferenceError et Unknown message type
- Déplacer le filtrage des messages d'extension avant le logging
- Éviter les logs en boucle des messages react-devtools-content-script
- Améliorer la performance en filtrant d'abord, puis en loggant
🔧 Corrections appliquées:
- Suppression import CSS direct dans router.ts
- CSS chargé via HTML link tag (déjà présent)
- Correction imports avec alias ~ dans modal.service.ts
- Résolution erreur 'Cannot import non-asset file /style/4nk.css'
- Résolution erreur 'Failed to resolve import ~/components/validation-modal'
✅ Serveur Vite fonctionnel sans erreurs
✅ Configuration allowedHosts maintenue
✅ Tous les imports résolus correctement
🔧 Correction configuration Vite:
- Ajout de dev3.4nkweb.com dans allowedHosts
- Ajout de localhost, 127.0.0.1, 31.33.24.235
- Résolution erreur 'Blocked request' pour dev3.4nkweb.com
- Serveur accessible depuis tous les hosts autorisés