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

165 lines
4.4 KiB
Markdown

# 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=<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)
```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)