diff --git a/DEPLOY-J5-UPDATE.md b/DEPLOY-J5-UPDATE.md new file mode 100644 index 0000000..356f5a1 --- /dev/null +++ b/DEPLOY-J5-UPDATE.md @@ -0,0 +1,165 @@ +# 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)