#!/usr/bin/env bash
# R5: HEAD scan where `cat` cannot be resolved through PATH (R1 fixture).
set -uo pipefail
C=/tmp/ev-23690/capture; D=$C/drivers; F=$C/fx-r1
HEADWT=$HOME/wt/pr-23690; NODE=$(node -p process.execPath)
echo "## R5 spawn error at HEAD $(git -C $HEADWT rev-parse HEAD)  $(date -u +%FT%TZ)"
mkdir -p $C/empty-bin
echo "\$ env PATH=$C/empty-bin sh -c 'command -v cat'"; env PATH=$C/empty-bin /bin/sh -c 'command -v cat; echo "command -v exit=$?"'
cd $HEADWT/apps/server
echo "\$ env PATH=$C/empty-bin $NODE scan.ts $HEADWT $F/claude $F/codex 1"
env PATH=$C/empty-bin /usr/bin/strace -f -qq -s 300 -e trace=execve -o $C/r5-strace.log $NODE $D/scan.ts $HEADWT $F/claude $F/codex 1 > $C/r5-head.json
echo "exit=$?"
jq -c '.[0].result.candidates[] | {path: (.path|split("/")|last), git}' $C/r5-head.json
echo "successful cat execs: $(grep -c 'execve(".*cat", \["cat".*= 0$' $C/r5-strace.log)"
echo "failed cat exec attempts:"; grep 'execve(".*cat", \["cat"' $C/r5-strace.log | sed -E 's/^[0-9]+ +//; s/, 0x[0-9a-f]+ \/\* [0-9]+ vars \*\//, …/' | sort | uniq -c
echo; echo "compare with R1 HEAD result (cat available):"
diff <(jq -S '.[0].result' $C/r1-head.json) <(jq -S '.[0].result' $C/r5-head.json); echo "diff exit=$?"
