FIX7 P0 Production-Rehearsal-Only — RERUN.sh
#!/usr/bin/env bash
Re-run harnesses, recompute HASH_MANIFEST.txt, compare to packet_tree.sha256.
set -uo pipefail HERE="$(cd "$(dirname "$0")" && pwd)" cd "$HERE" export PYTHONDONTWRITEBYTECODE=1 RC=0 CLONE="$(mktemp -d /tmp/fix7-rehearsal-clone.XXXXXX)" trap 'rm -rf "$CLONE"' EXIT
regenerate deterministic evidence
bash rehearsal_clone_rollback.sh "$CLONE" "$HERE" >/dev/null 2>&1 || RC=1 python3 -B run_hardened_validator.py >/dev/null 2>&1 || RC=1 python3 -B rehearsal_bad_input_probes.py >/dev/null 2>&1 || RC=1
recompute manifest over all files except HASH_MANIFEST.txt + packet_tree.sha256
TMPM="$(mktemp)" find . -type f ! -name HASH_MANIFEST.txt ! -name packet_tree.sha256 ! -path './pycache/*' -print | sed 's|^./||' | LC_ALL=C sort | while read -r f; do printf '%s %s\n' "$(shasum -a 256 "$f" | awk '{print $1}')" "$f" done > "$TMPM" NEW_TREE="$(shasum -a 256 "$TMPM" | awk '{print $1}')" STORED_TREE="$(cat packet_tree.sha256 | awk '{print $1}')"
if [ "$NEW_TREE" = "$STORED_TREE" ]; then echo "PACKET_TREE: MATCH ($NEW_TREE)" else echo "PACKET_TREE: MISMATCH new=$NEW_TREE stored=$STORED_TREE"; RC=1 diff <(cat HASH_MANIFEST.txt) "$TMPM" || true fi rm -f "$TMPM" if [ $RC -eq 0 ]; then echo "RERUN_RESULT: PASS"; else echo "RERUN_RESULT: FAIL"; fi exit $RC