agenthub/DEPLOY-J5-UPDATE.md
Paperclip FoundingEngineer c082ea9fd4 docs(agenthub): Add J5 deployment update guide
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>
2026-05-02 00:06:51 +00:00

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)