openclaw/scripts/install-simslim.sh
Vincent Koc deb168691b
feat(ci): add SimSlim and native iOS release qualification (#147770)
* feat(ci): slim iOS test simulators

Pin SimSlim 0.8.0 for CI simulator preparation with a conservative search/family-only profile. Keep stock and Watch behavior unchanged, bind screenshots to the prepared runtime, and fail immediately on preparation errors.

* feat(ci): require iOS release E2E qualification

Qualify beta releases with the real paired Debug app, an isolated Gateway, and a deterministic provider fixture before release.

Keep stock as the default. Compare four matched stock/SimSlim pairs in AB, BA, AB, BA order with sampled footprint and retained failures.

Real Xcode 26.6 execution and measured native comparison proof remain pending. Changelog changes are release-owned and intentionally omitted.

* fix(ci): handle reusable jobs in mobile workflow tests

Skip absent step arrays in generic workflow traversals while preserving named-job and protected-input assertions.

Reproduce four guard failures, run both complete files (83 passed and one sparse-fixture failure), then pass the targeted fixture retry after materializing the tracked file. Targeted formatting, lint, and incremental P2 review passed.

* fix(ci): unblock native iOS qualification startup

* fix(ci): run iOS qualification without repetition flags

* fix(ci): preserve simulator Keychain entitlements

* test(ios): preserve drafts during live chat qualification

* test(ios): select the hittable chat transcript

* test(ios): identify the chat transcript explicitly

* test(ios): dismiss chat keyboard through transcript text

* test(ios): match long submitted prompts by label

* test(ios): dismiss keyboard using visible transcript text

* fix(ios): keep transcript scroll commands one-shot

* fix(ios): avoid transcript stalls after repeated sends

* fix(ci): constrain native iOS qualification targets

* fix(ci): preserve targeted mobile validation tiers

* test(ci): supply native qualification gate context
2026-09-26 02:21:26 +00:00

43 lines
1.3 KiB
Bash
Executable file

#!/bin/bash
set -euo pipefail
if [[ "$#" -ne 1 || -z "$1" ]]; then
echo "usage: $0 <install-directory>" >&2
exit 2
fi
if [[ "$(uname -s)" != "Darwin" || "$(uname -m)" != "arm64" ]]; then
echo "simslim requires macOS arm64" >&2
exit 1
fi
readonly simslim_version="0.8.0"
readonly simslim_checksum="c7d33ba033488521eb42ec2057c3a069b13b6551c9ebfe4455128befe2ad9b19"
umask 077
install_dir="$1"
temp_dir="$(mktemp -d)"
trap 'rm -rf "$temp_dir"' EXIT
archive="$temp_dir/simslim.tar.gz"
extract_dir="$temp_dir/extract"
curl --fail --location --silent --show-error \
--connect-timeout 10 --max-time 120 \
--retry 3 --retry-max-time 120 \
--output "$archive" \
"https://github.com/MobAI-App/simslim/releases/download/v$simslim_version/simslim-v$simslim_version-macos-arm64.tar.gz"
archive_checksum="$(shasum -a 256 "$archive" | awk '{print $1}')"
if [[ "$archive_checksum" != "$simslim_checksum" ]]; then
echo "simslim archive checksum mismatch" >&2
exit 1
fi
mkdir -p "$install_dir" "$extract_dir"
tar -xzf "$archive" -C "$extract_dir" simslim
install -m 0755 "$extract_dir/simslim" "$install_dir/simslim"
installed_version="$("$install_dir/simslim" --version)"
if [[ "$installed_version" != "simslim $simslim_version" ]]; then
echo "simslim version mismatch" >&2
exit 1
fi