#!/usr/bin/env bash # The determinism gate: fetch every production ledger and replay it with the # LOCAL engine, comparing each room with what the server shows. A ledger the # new engine replays differently would rewrite a duel in progress when the # server restarts, so this runs before every deploy. # deploy/verify-ledgers.sh [https://site] set -euo pipefail HOST="${1:?usage: verify-ledgers.sh [https://site]}" SITE="${2:-https://hands.kestrelsnest.social}" DIR="$(mktemp -d)" trap 'rm -rf "$DIR"' EXIT rsync -az "root@$HOST:/var/lib/waving-hands/rooms/" "$DIR/" npx tsx deploy/replay-ledgers.ts "$DIR" "$SITE"