#!/bin/bash
EID=286f3ba4-5738-49b7-a7e4-ce0295fd4352
PID=a7f80ab9-e97b-420c-a380-3beccb0bcfe5
IMGDIR="/Users/manta/Documents/Projects/TheRoad-I1/projects/$PID/episodes/$EID/images"
Q() { PGPASSWORD=theroad_dev_2026 psql -h localhost -U theroad -d theroad -t -A -c "$1" 2>/dev/null; }
stable=0
for i in $(seq 1 120); do
  done=$(Q "SELECT COUNT(*) FILTER (WHERE status='completed') FROM step_run WHERE episode_id='$EID';")
  running=$(Q "SELECT COALESCE(string_agg(step_id,','),'-') FROM step_run WHERE episode_id='$EID' AND status='running';")
  failed=$(Q "SELECT COALESCE(string_agg(step_id,','),'') FROM step_run WHERE episode_id='$EID' AND status='failed';")
  pngs=$(find "$IMGDIR" -name '*.png' 2>/dev/null | wc -l | tr -d ' ')
  newpng=$(find "$IMGDIR" -name '*.png' -newermt '-90 seconds' 2>/dev/null | wc -l | tr -d ' ')
  echo "[w2 $i] done=$done pngs=$pngs new90s=$newpng running=$running failed=[$failed]"
  # Stage A done: cap≈50 images on disk, OR no running step + no new pngs for 3 cycles (idle)
  if [ "$pngs" -ge 48 ]; then echo "DONE: png>=48 ($pngs) — cap reached"; exit 0; fi
  if [ "$running" = "-" ] && [ "$newpng" = "0" ]; then
    stable=$((stable+1))
    if [ "$stable" -ge 3 ]; then echo "DONE: idle stable done=$done pngs=$pngs"; exit 0; fi
  else
    stable=0
  fi
  sleep 40
done
echo "WATCH2 TIMEOUT 80min pngs=$pngs"
