#!/usr/bin/env bash set -euo pipefail S=/tmp/claude-1000/-home-shunli-Projects-hyb-oa/118e4fec-64a1-446b-8573-31e26633f5d6/scratchpad MODE=diag-repro export QA_KEEP_DB=1 QA_DB_PREFIX=hyb_oa_webgate_repro export QA_FULL_REPORT_DIR=/home/shunli/Projects/hyb-oa/artifacts/qa-flow/repro-$(date +%H%M%S) source $S/gates-lib.sh trap qa_cleanup EXIT qa_select_port export JOBS_ENABLED=true RATE_LIMIT_ENABLED=false IM_NOTIFIER_ENABLED=false qa_export_app_env export IM_NOTIFIER_ENABLED=false qa_seed_synthetic_credentials qa_prepare_db qa_build_client qa_start_server QA_DB_NAME="$QA_DB_NAME" E2E_BASE_URL="$QA_BASE_URL" node --input-type=module -e ' import { prepareAccounts } from "/home/shunli/Projects/hyb-oa/scripts/qa/prepare-local-e2e-accounts.mjs"; const r = await prepareAccounts({ origin: process.env.E2E_BASE_URL, initialPassword: process.env.QA_SYNTHETIC_INITIAL_PASSWORD, databaseName: process.env.QA_DB_NAME }); console.log("accounts", r.status, r.accounts.length);' echo "REPRO_DB=$QA_DB_NAME REPRO_URL=$QA_BASE_URL SERVER_LOG=$QA_SERVER_LOG" cd "$CLIENT_DIR" set +e E2E_BASE_URL="$QA_BASE_URL" E2E_MODE=local node node_modules/@playwright/test/cli.js test procurement-flow.spec.ts permission-direct-access.spec.ts \ --repeat-each="${REPEAT:-6}" --workers=4 --retries=0 --reporter=line --output="$QA_FULL_REPORT_DIR/test-results" echo "playwright_exit=$?"