#!/usr/bin/env bash
set -euo pipefail
# Run with the other uploaded scripts in this directory. No live database is used.
S=/tmp/lead-33554-r1/evidence-capture-2
mkdir -p "$S"
df -BG --output=avail /
git -C /home/ubuntu/t3code worktree add --detach /home/ubuntu/wt/pr-33554-f21-before ee59ab22a819acb0544d85cd6cca0e4aa8c7c444
git -C /home/ubuntu/t3code worktree add --detach /home/ubuntu/wt/pr-33554-f21-after e4868beb9d922edc2dd0ebaf6db16c996b044d5b
git -C /home/ubuntu/t3code diff --stat ee59ab22a8 e4868beb9d -- apps/web packages/ui packages/client-runtime
for side in before after; do
  checkout="/home/ubuntu/wt/pr-33554-f21-$side"
  cd "$checkout"
  vp install > "$S/install-$side.log" 2>&1
  setsid env T3CODE_DEV_SEED=0 vp run dev > "$S/$side-server.log" 2>&1 &
  server_pid=$!
  printf '%s\n' "$server_pid" > "$S/$side-server.pid"
  trap 'kill -INT -- -"$server_pid" 2>/dev/null || true' EXIT
  for attempt in {1..120}; do
    if rg -q 'pairingUrl:' "$S/$side-server.log"; then break; fi
    sleep 1
  done
  df -BG --output=avail /
  avail=$(df -BG --output=avail / | tail -1 | tr -dc '0-9')
  if (( avail < 5 )); then echo "FRICTION infra: only ${avail} GB available"; exit 1; fi
  port=$(sed -n 's/.*\[dev-runner\].*webPort=\([0-9]*\).*/\1/p' "$S/$side-server.log" | head -1)
  node apps/server/src/bin.ts pair --base-dir "$checkout/.t3" --label F21-synthetic > "$S/$side-pair-private.log" 2>&1
  F21_SIDE="$side" F21_PORT="$port" headless-desktop node "$checkout/apps/desktop/node_modules/electron/cli.js" --no-sandbox --disable-gpu "$S/capture-electron.cjs"
  kill -INT -- -"$server_pid" 2>/dev/null || true
  wait "$server_pid" || true
  trap - EXIT
done
F21_CHECKOUT=/home/ubuntu/wt/pr-33554-f21-before headless-desktop node /home/ubuntu/wt/pr-33554-f21-before/apps/desktop/node_modules/electron/cli.js --no-sandbox --disable-gpu "$S/ipc-probe.cjs"
python3 "$S/compare.py"
# Upload evidence before deleting either checkout or the scratch directory.
# AI-assisted; verified with the tests and tools listed above.
