7 Commits
Author SHA1 Message Date
bruno 15985a6bfa fix: échapper l'apostrophe dans 'Je t'écoute' (guillemets doubles JS)
Le guillemet simple français cassait la string JavaScript.
Corrigé avec des guillemets doubles pour la chaîne contenant l'apostrophe.
2026-06-19 23:59:53 -04:00
bruno 2065af3aeb fix: ajouter Cache-Control no-store pour éviter cache navigateur
Le navigateur gardait l'ancien HTML en cache, affichant 'Déconnecté'
de la Phase 1 au lieu du nouveau code Phase 2 avec le micro.
2026-06-19 23:57:58 -04:00
bruno 29855bcd1f feat: Phase 2 — Audio STT/TTS
- TTS: edge-tts 7.2.8 (fr-FR-DeniseNeural) — génération MP3 asynchrone
- STT: Web Speech API navigateur (SpeechRecognition fr-FR)
- Audio playback: base64 MP3 décodé et joué via Audio API
- Bouton micro avec animation pulse pendant l'écoute
- Chemin absolu edge-tts (systemd PATH)
- Audio envoyé dans le message 'response' existant (champ audio)

Coût: latence TTS ~7s, zéro dépendance serveur pour le STT.
2026-06-19 23:39:04 -04:00
bruno c8d5d2048c fix: éliminer doublon fonction send() et ws.onmessage dans le JS
- Le patch timeout avait créé un doublon: send() avec timeout puis send() sans timeout
- ws.onmessage défini deux fois (dans connect() et hors connect())
- Nettoyage: ws.onmessage uniquement dans connect(), send() unique avec timeout
- Correction du SyntaxError 'Unexpected end of input' causé par le JS corrompu
2026-06-19 23:27:59 -04:00
bruno 398ad2f295 fix: corriger InvalidUpgrade sur requêtes HTTP non-WebSocket
- process_request retourne None UNIQUEMENT pour /ws
- Tous les autres chemins (/favicon.ico, etc.) reçoivent 404
- Évite que websockets tente un handshake sur des requêtes HTTP normales
2026-06-19 23:23:56 -04:00
bruno b51702f24f chore: stabilisation Phase 1 — reconnexion auto, timeout LLM, systemd, README
- Ajout reconnexion auto WebSocket avec backoff exponentiel (2s→30s, max 20 tentatives)
- Ajout timeout LLM côté frontend (25s) avec réactivation du bouton
- Réduction timeout serveur httpx 60→45s
- Service systemd user jarvis-v3 (survit aux reboots)
- Launcher Python avec fallback .env si Infisical expiré
- README.md complet (architecture, URLs, roadmap, maintenance)
- .gitignore (venv, pycache, logs)
2026-06-19 22:51:01 -04:00
bruno 09984d49fa feat: JARVIS v3 Phase 1 — WebSocket relay vers Hermes A.L.E.X.A.
- Serveur WebSocket direct avec websockets 16.0
- Interface HTML/CSS/JS dark theme avec chat
- Relay vers API Hermes sur port 8642
- Historique de conversation (20 messages)
- Clé API via Infisical
- Testé et fonctionnel sur openclaw1.dev.home:7081
2026-06-19 22:46:32 -04:00