#!/usr/bin/env bash
set -euo pipefail
# Run separately in each checkout with its fresh isolated server and Metro.
# PROOF_CHECKOUT, PROOF_HOME, SERVER_ORIGIN, SERVER_PORT, METRO_ORIGIN,
# DEVICE_SESSION and OUTPUT_DIR are supplied by the operator.
T3CODE_DEV_SEED=0 PROOF_CHECKOUT="$PROOF_CHECKOUT" PROOF_HOME="$PROOF_HOME" node prepare.ts
vp run mobile:install ios --prepare
agent-device connect proxy --daemon-base-url "$SIMLOCK_AGENT_DEVICE_URL" --session "$DEVICE_SESSION"
agent-device open --platform ios --device 'iPhone 18 Pro' --session "$DEVICE_SESSION"
vp run mobile:install ios --session "$DEVICE_SESSION"
# Open the development-client link for METRO_ORIGIN, accept the system prompt,
# then wait for the real app before pairing through the repository helper.
.agents/skills/test-t3-mobile/scripts/pair-client.sh "$SERVER_PORT" "$PROOF_HOME" "$SERVER_ORIGIN" agent-device --session "$DEVICE_SESSION"
agent-device settings appearance dark --session "$DEVICE_SESSION"
# On the native UI: Settings > Scheduled tasks. Capture the list, then open
# Daily report task and scroll down 450 to expose Schedule > Time.
# Use snapshot refs from the current screen for every press.
agent-device snapshot -i --session "$DEVICE_SESSION"
agent-device screenshot "$OUTPUT_DIR/rows-a.png" --session "$DEVICE_SESSION"
sleep 0.5
agent-device screenshot "$OUTPUT_DIR/rows.png" --session "$DEVICE_SESSION"
compare -metric AE "$OUTPUT_DIR/rows-a.png" "$OUTPUT_DIR/rows.png" null:
agent-device record start "$OUTPUT_DIR/flow.mp4" --hide-touches --session "$DEVICE_SESSION"
# Press the current 'Edit Daily report task' ref, then:
agent-device scroll down 450 --session "$DEVICE_SESSION" --settle
agent-device snapshot -i --session "$DEVICE_SESSION"
agent-device screenshot "$OUTPUT_DIR/editor-a.png" --session "$DEVICE_SESSION"
sleep 0.5
agent-device screenshot "$OUTPUT_DIR/editor.png" --session "$DEVICE_SESSION"
compare -metric AE "$OUTPUT_DIR/editor-a.png" "$OUTPUT_DIR/editor.png" null:
agent-device record stop --session "$DEVICE_SESSION"
agent-device close --session "$DEVICE_SESSION"
