#!/usr/bin/env bash # Annule TOUS les replays actifs/en-pause côté streaming server. # À utiliser AVANT de relancer un replay quand le bouton Stop VWB # ne purge pas la queue (bug en cours d'investigation). # # Usage : ./scripts/cancel-replays.sh set -euo pipefail ENV_FILE="/home/dom/ai/rpa_vision_v3/.env.local" STREAM_URL="http://localhost:5005" if [[ ! -f "$ENV_FILE" ]]; then echo "❌ .env.local introuvable" >&2 exit 1 fi TOKEN=$(grep RPA_API_TOKEN "$ENV_FILE" | cut -d= -f2 | tr -d "'\"") if [[ -z "$TOKEN" ]]; then echo "❌ RPA_API_TOKEN vide" >&2 exit 1 fi # Liste les replays actifs et les annule un par un. mapfile -t ACTIVE < <( curl -s -H "Authorization: Bearer $TOKEN" \ "$STREAM_URL/api/v1/traces/stream/replay/list" \ | python3 -c " import sys, json try: d = json.load(sys.stdin) for x in d.get('replays', []): if x.get('status') in ('running', 'paused_need_help', 'busy'): print(x['replay_id']) except Exception as e: sys.stderr.write(f'parse error: {e}\n') " ) if [[ ${#ACTIVE[@]} -eq 0 ]]; then echo "✓ Aucun replay actif" exit 0 fi echo "Annulation de ${#ACTIVE[@]} replay(s) actif(s) :" for r in "${ACTIVE[@]}"; do echo -n " $r ... " curl -s -X POST -H "Authorization: Bearer $TOKEN" \ "$STREAM_URL/api/v1/traces/stream/replay/$r/cancel" > /dev/null echo "✓" done echo "✓ Tous les replays annulés, queues purgées."