#!/usr/bin/env bash
# Full-head compile gate for assembly/v0.69.0 on kitsubito ~/spt-core-gate-w2. Usage: bash head-gate-kitsubito.sh <full-sha> <label>
# Every leg records its own exit code in a sentinel file; the summary is read from those, never from tails.
set -u
SHA="${1:?full sha}"; LABEL="${2:?lane label}"
export PATH="$HOME/.cargo/bin:$PATH"
OUT="$HOME/gate-294-head/$SHA"; mkdir -p "$OUT"
cd "$HOME/spt-core-gate-w2" || exit 90
[ -z "$(git status --short | grep -v '^?? .adapter-notify/')" ] || { echo "TREE DIRTY"; git status --short; exit 91; }
# objects arrive by direct push from HFENDULEAM before this runs: git push ssh://reavus@kitsubito/~/spt-core-gate-w2 <sha>:refs/gate/head2
git cat-file -e "$SHA^{commit}" || { echo "SHA NOT PRESENT"; exit 92; }
git checkout -q --detach "$SHA" && echo "HEAD=$(git rev-parse HEAD)" | tee "$OUT/head.txt"
cargo run -q -p xtask -- pool-claim --pool target --label "$LABEL" > "$OUT/claim.raw" 2>&1; echo $? > "$OUT/claim.exit"
run() { n="$1"; shift; echo "=== $n: $*"; "$@" > "$OUT/$n.raw" 2>&1; echo $? > "$OUT/$n.exit"; echo "$n exit $(cat "$OUT/$n.exit")"; }
run clippy cargo clippy --workspace --all-targets -- -D warnings
run brainread cargo run -q -p xtask -- brain-read-check
run xcheck cargo run -q -p xtask -- check
run nextest-xtask cargo nextest run -p xtask
run treqs traceable-reqs check
echo "=== SUMMARY $SHA"; for f in "$OUT"/*.exit; do printf '%s=%s\n' "$(basename "$f" .exit)" "$(cat "$f")"; done
grep -c '^warning' "$OUT/clippy.raw" | sed 's/^/clippy warning lines=/'
