#!/usr/bin/env bash
# doyle gate driver for PR 229 (eed9ff36) — sequential takeover of todlando's released pool
set -u
ROOT=/c/Users/decid/Documents/projects/spt-core
WT=$ROOT/.worktrees/309-bringup-liveness
G=$ROOT/.spt/preserved/309/gate-229
P=$G/phases.txt
unset OWL_SESSION_ID SPT_SESSION_ID SPT_ENDPOINT CLAUDE_SESSION_ID SPT_HOME 2>/dev/null
env | grep -Ei '^(OWL|SPT|CLAUDE|CARGO)' > $G/env-after-scrub.txt
phase(){ echo "$(date -u +%H:%M:%SZ) $1 exit=$2" | tee -a $P; }
cd "$WT" || { phase cd 99; exit 99; }
H=$(git rev-parse HEAD); echo "HEAD=$H" > $G/subject.txt; git status --short >> $G/subject.txt
[ "$H" = "eed9ff361bd094eb9bf7eee4d8acc71b2de8d74b" ] || { phase subject-mismatch 98; exit 98; }
phase subject 0
cargo run -q -p xtask -- pool-claim --pool target --label gate-229 > $G/claim.log 2>&1; phase pool-claim $?
traceable-reqs check > $G/checker.log 2>&1; phase checker $?
export CARGO_BUILD_JOBS=2
export SPT_TEST_ER309_KNOB_UNSET=0
cargo nextest run --locked -j 2 -p spt --test er_briefing_bringup_reconcile_e2e --retries 0 --no-fail-fast --status-level all --failure-output immediate-final --no-tests fail > $G/cell-scheduled.log 2>&1; phase cell-scheduled $?
export SPT_TEST_ER309_KNOB_UNSET=1
cargo nextest run --locked -j 2 -p spt --test er_briefing_bringup_reconcile_e2e --retries 0 --no-fail-fast --status-level all --failure-output immediate-final --no-tests fail > $G/cell-control.log 2>&1; phase cell-control $?
unset SPT_TEST_ER309_KNOB_UNSET
cargo nextest run --locked -j 2 -p spt --test er_briefing_presented_e2e --retries 0 --no-fail-fast --status-level all --failure-output immediate-final --no-tests fail > $G/presented.log 2>&1; phase presented-e2e $?
cargo nextest run --locked -j 2 -p spt-daemon --lib -E 'test(livehost::)' --retries 0 --no-fail-fast --status-level all --failure-output immediate-final --no-tests fail > $G/livehost-unit.log 2>&1; phase livehost-unit $?
cargo run -q -p xtask -- pool-release > $G/release.log 2>&1; phase pool-release $?
phase DONE 0
