set +e
G=re_serve_resets_resume_cursor_after_a_pre_attached_consume
cd ~/actions-runner/_work/spt-core/spt-core
rm -rf /tmp/gd /tmp/gd_tgt
git worktree add -f --detach /tmp/gd bdb51c2 >/dev/null 2>&1 || { echo WT-FAIL; exit 1; }
cd /tmp/gd
DTGT=/tmp/gd_tgt
echo "== GUARD green-normal (--test ATTACH, dedicated target) 5x =="
gp=0
CARGO_TARGET_DIR=$DTGT timeout 400 cargo test -p spt-daemon --test attach $G --no-run >/tmp/gdb.log 2>&1 || { echo BUILD-FAIL; tail -5 /tmp/gdb.log; exit 1; }
for i in 1 2 3 4 5; do
  R=$(CARGO_TARGET_DIR=$DTGT timeout 90 cargo test -p spt-daemon --test attach $G -- --exact 2>&1)
  echo "$R" | grep -qE "1 passed" && { gp=$((gp+1)); echo "guard $i: PASS"; } || echo "guard $i: NOTPASS ($(echo "$R"|grep -oE 'filtered out|FAILED|[0-9]+ passed'|head -1))"
done
echo "GUARD_GREEN=$gp/5"
echo "== GUARD revert-to-RED (disable subscribe_with reset, rebuild) 3x =="
sed -i 's|self.session_cursors.insert(session_id, from_seq);|/* REVERT */|' crates/spt-daemon/src/brain.rs
echo "patched: $(grep -c 'REVERT' crates/spt-daemon/src/brain.rs)"
rr=0
for i in 1 2 3; do
  R=$(CARGO_TARGET_DIR=$DTGT timeout 200 cargo test -p spt-daemon --test attach $G -- --exact 2>&1)
  echo "$R" | grep -qE "1 passed" && echo "revert $i: PASS(BAD)" || { rr=$((rr+1)); echo "revert $i: RED-good ($(echo "$R"|grep -oE 'FAILED|panicked at[^,]*'|head -1))"; }
done
echo "REVERT_RED=$rr/3"
cd ~/actions-runner/_work/spt-core/spt-core && git worktree remove --force /tmp/gd 2>/dev/null; git worktree prune; rm -rf /tmp/gd_tgt
echo "GUARD2-DONE"
