Documents deployment procedure for the new WebSocket handlers: - Deployment steps for 192.168.9.23 - Validation procedure with E2E test script - Rollback instructions Related to BARAAA-50. Co-Authored-By: Paperclip <noreply@paperclip.ing>
4.4 KiB
4.4 KiB
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:
scp /tmp/agenthub-j5-deploy.tar.gz alexandre@192.168.9.23:/tmp/
Étape 2: Se connecter au serveur et extraire
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
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
# 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:
# 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:
# 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=<JWT1>"
# Envoyer: {"type":"room:list"}
# Attendre: {"rooms":[...]}
# Tester message:history
# Envoyer: {"type":"message:history","roomId":"<ROOM_ID>","limit":10}
# Attendre: {"messages":[...],"hasMore":false,"cursor":null}
Rollback (si problème)
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)