# AgentHub J5 — Déploiement de mise à jour **Fonctionnalités ajoutées:** - Handler WebSocket `room:list` - Handler WebSocket `message:history` - Tests unitaires et script de validation E2E **Archive de déploiement:** `/tmp/agenthub-j5-deploy.tar.gz` (102K) --- ## Déploiement sur 192.168.9.23 (LAN) ### Étape 1: Copier l'archive sur le serveur Depuis une machine ayant accès SSH au serveur: ```bash scp /tmp/agenthub-j5-deploy.tar.gz alexandre@192.168.9.23:/tmp/ ``` ### Étape 2: Se connecter au serveur et extraire ```bash ssh alexandre@192.168.9.23 # Backup de l'ancienne version (optionnel) sudo cp -r /opt/agenthub /opt/agenthub.backup.$(date +%Y%m%d_%H%M%S) # Extraire la nouvelle version cd /opt/agenthub sudo tar xzf /tmp/agenthub-j5-deploy.tar.gz ``` ### Étape 3: Rebuild et redémarrer ```bash cd /opt/agenthub # Rebuild l'image avec le nouveau code sudo docker compose -f compose.lan-direct.yml build --no-cache app # Redémarrer le service sudo docker compose -f compose.lan-direct.yml up -d # Vérifier les logs sudo docker compose -f compose.lan-direct.yml logs -f app ``` ### Étape 4: Vérifier le déploiement ```bash # Health check curl http://192.168.9.23:3000/healthz # → {"status":"ok","uptime":...} # Vérifier que les nouveaux logs montrent le redémarrage sudo docker compose -f compose.lan-direct.yml logs --tail=50 app ``` --- ## Validation des nouvelles fonctionnalités ### Test automatisé (recommandé) Depuis une machine ayant Node.js installé et accès au serveur: ```bash # Copier le script de test scp /home/alexandre/.paperclip/instances/default/workspaces/8780faf8-03bb-45e9-989e-167eeb438b58/agenthub/test/j5-messaging-validation.js \ machine-de-test:/tmp/ # Installer socket.io-client si besoin npm install -g socket.io-client # Lancer le test node /tmp/j5-messaging-validation.js 192.168.9.23:3000 ``` **Résultat attendu:** ``` 🚀 AgentHub J5 — Messaging Validation Test ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ✓ Health check ✓ Agents created (Alexia & Alan) ✓ API tokens generated ✓ JWTs obtained ✓ Room created ✓ WebSocket connections established ✓ room:list handler works ✓ Message broadcast works ✓ message:history handler works ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ✓ All J5 tests passed! ✨ ``` ### Test manuel via wscat Si le script automatisé n'est pas disponible: ```bash # Terminal 1 — Créer agents et room AGENT1=$(curl -s -X POST http://192.168.9.23:3000/api/v1/agents \ -H 'Content-Type: application/json' \ -d '{"name":"test1","displayName":"Test1","role":"agent"}' | jq -r .id) AGENT2=$(curl -s -X POST http://192.168.9.23:3000/api/v1/agents \ -H 'Content-Type: application/json' \ -d '{"name":"test2","displayName":"Test2","role":"agent"}' | jq -r .id) # Obtenir les JWTs (simplifié, voir script complet) # ... # Tester room:list wscat -c "ws://192.168.9.23:3000/agents" --auth "jwt=" # Envoyer: {"type":"room:list"} # Attendre: {"rooms":[...]} # Tester message:history # Envoyer: {"type":"message:history","roomId":"","limit":10} # Attendre: {"messages":[...],"hasMore":false,"cursor":null} ``` --- ## Rollback (si problème) ```bash ssh alexandre@192.168.9.23 cd /opt # Arrêter la version actuelle sudo docker compose -f agenthub/compose.lan-direct.yml down # Restaurer l'ancienne version sudo mv agenthub agenthub.failed sudo mv agenthub.backup.YYYYMMDD_HHMMSS agenthub # Redémarrer cd agenthub sudo docker compose -f compose.lan-direct.yml up -d ``` --- ## Commits inclus ``` a79df89 feat(agenthub): Add room:list and message:history WebSocket handlers ``` **Changements:** - `src/socket/index.ts`: +118 lignes (handlers + validation schemas) - `test/socket.test.ts`: +151 lignes (tests unitaires) - `test/j5-messaging-validation.js`: +348 lignes (script E2E) --- ## Notes - Le serveur doit être redémarré pour prendre en compte les nouveaux handlers - Pas de migration DB nécessaire (schéma inchangé) - Compatible avec l'infrastructure J10 existante - Les anciens clients WebSocket continueront de fonctionner (backward compatible)