class v5 harness runner: the box side in a script run by path (main's rule of 21:33 UK: no redirect-truncate inside a shell command string)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
igneum-labs 2026-10-07 20:36:11 +00:00
parent 291616013a
commit 510c90a860
2 changed files with 21 additions and 1 deletions

18
tools/class-v5/harness-box.sh Executable file
View file

@ -0,0 +1,18 @@
#!/usr/bin/env bash
# The box side of tools/class-v5/harness-remote.sh: runs the class v5 fast-time harness under the worktree on the box and
# keeps its log and summary under the harness log dir. In a file, not an ssh string (main's rule, 7 October 2026, 21:33
# UK: no inline deletion or redirect-truncate inside a shell -c string).
# harness-box.sh <remote root> <log dir> <case> <base port> <harness args...>
set -uo pipefail
REMOTE_ROOT="$1"; REMOTE_LOG="$2"; CASE="$3"; BASE="$4"; shift 4
touch "$REMOTE_ROOT/infra/fast-time/class-v5-signal.mjs" "$REMOTE_ROOT/infra/fast-time/override-60x.json"
mkdir -p "$REMOTE_LOG"
cd "$REMOTE_ROOT"
IGNEUM_V5_BASE="$BASE" IGNEUM_V5_TMP="/tmp/igneum-fast-time-v5s-$CASE" \
IGNEUM_V5_BIN="$REMOTE_ROOT/vendor/igneum-node-class-v5/target/release" \
IGNEUM_POW="$REMOTE_ROOT/igneum-pow/target/release/igneum-pow" \
node infra/fast-time/class-v5-signal.mjs "$@" > "$REMOTE_LOG/$CASE.log" 2>&1
rc=$?
cp "/tmp/igneum-fast-time-v5s-$CASE/summary.json" "$REMOTE_LOG/$CASE.json" 2>/dev/null || true
echo "harness-remote: rc $rc"
exit $rc

View file

@ -27,6 +27,8 @@ BASE="${BASE:-29760}"
echo "harness-remote: case $CASE on $HOST: node $REMOTE_ROOT/infra/fast-time/class-v5-signal.mjs $ARGS"
# the harness file travels by rsync (the mirror carries HEAD; an uncommitted change rides along, re-stamped: the copied-sources rule)
rsync -a -e "ssh -i $KEY" "$ROOT/infra/fast-time/class-v5-signal.mjs" "$ROOT/infra/fast-time/override-60x.json" "$HOST:$REMOTE_ROOT/infra/fast-time/"
ssh -i "$KEY" "$HOST" "touch $REMOTE_ROOT/infra/fast-time/class-v5-signal.mjs $REMOTE_ROOT/infra/fast-time/override-60x.json; mkdir -p $REMOTE_LOG; cd $REMOTE_ROOT && IGNEUM_V5_BASE=$BASE IGNEUM_V5_TMP=/tmp/igneum-fast-time-v5s-$CASE IGNEUM_V5_BIN=$REMOTE_ROOT/vendor/igneum-node-class-v5/target/release IGNEUM_POW=$REMOTE_ROOT/igneum-pow/target/release/igneum-pow node infra/fast-time/class-v5-signal.mjs $ARGS > $REMOTE_LOG/$CASE.log 2>&1; rc=\$?; cp /tmp/igneum-fast-time-v5s-$CASE/summary.json $REMOTE_LOG/$CASE.json 2>/dev/null || true; echo \"harness-remote: rc \$rc\"; exit \$rc" || true
rsync -a -e "ssh -i $KEY" "$ROOT/tools/class-v5/harness-box.sh" "$HOST:$REMOTE_ROOT/tools/class-v5/"
# the box side is a script run by path (tools/class-v5/harness-box.sh), not an ssh command string
ssh -i "$KEY" "$HOST" "$REMOTE_ROOT/tools/class-v5/harness-box.sh" "$REMOTE_ROOT" "$REMOTE_LOG" "$CASE" "$BASE" $ARGS || true
rsync -a -e "ssh -i $KEY" "$HOST:$REMOTE_LOG/$CASE.log" "$HOST:$REMOTE_LOG/$CASE.json" "$OUT/" 2>/dev/null || true
grep -E "SUMMARY|FAILED CHECK|PROGRAM ID|CLASS SWITCH" "$OUT/$CASE.log" || tail -20 "$OUT/$CASE.log"