Skip to content

Commit 9dfa4db

Browse files
committed
test: harden macos release-to-dev smoke verification
1 parent 26c9885 commit 9dfa4db

2 files changed

Lines changed: 20 additions & 5 deletions

File tree

.agents/skills/openclaw-parallels-smoke/SKILL.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ Use this skill for Parallels guest workflows and smoke interpretation. Do not lo
5050
- Because the default upgrade lane no longer needs a host tgz, skip `npm pack` + host HTTP server startup for `--mode upgrade` unless `--target-package-spec` is set. Keep the pack/server path for `fresh` and `both`.
5151
- If that release-to-dev lane fails with `reason=preflight-no-good-commit` and repeated `sh: pnpm: command not found` tails from `preflight build`, treat it as an updater regression first. The fix belongs in the git/dev updater bootstrap path, not in Parallels retry logic.
5252
- Until the public stable train includes that updater bootstrap fix, the macOS release-to-dev lane may seed a temporary guest-local `pnpm` shim immediately before `openclaw update --channel dev`. Keep that workaround scoped to the smoke harness and remove it once the latest stable no longer needs it.
53+
- After the package -> git switch, prefer post-update verification through explicit `node ~/openclaw/openclaw.mjs ...` calls. In Tahoe `prlctl exec --current-user` runs, the shebanged global `openclaw` wrapper can fail with `env: node: No such file or directory` even though the dev switch already succeeded.
5354
- Default to the snapshot closest to `macOS 26.3.1 latest`.
5455
- On Peter's Tahoe VM, `fresh-latest-march-2026` can hang in `prlctl snapshot-switch`; if restore times out there, rerun with `--snapshot-hint 'macOS 26.3.1 latest'` before blaming auth or the harness.
5556
- `parallels-macos-smoke.sh` now retries `snapshot-switch` once after force-stopping a stuck running/suspended guest. If Tahoe still times out after that recovery path, then treat it as a real Parallels/host issue and rerun manually.

scripts/e2e/parallels-macos-smoke.sh

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -561,12 +561,22 @@ guest_current_user_exec() {
561561
guest_current_user_exec_path "$GUEST_EXEC_PATH" "$@"
562562
}
563563

564+
guest_current_user_node_cli() {
565+
guest_current_user_exec "$GUEST_NODE_BIN" "$@"
566+
}
567+
564568
resolve_guest_current_user_home() {
565569
local user_name
566570
user_name="$(guest_current_user_exec /usr/bin/id -un | tr -d '\r')"
567571
printf '/Users/%s\n' "$user_name"
568572
}
569573

574+
resolve_guest_git_openclaw_entry() {
575+
local guest_home
576+
guest_home="$(resolve_guest_current_user_home)"
577+
printf '%s/openclaw/openclaw.mjs\n' "$guest_home"
578+
}
579+
570580
guest_current_user_cli() {
571581
local parts=() arg joined=""
572582
for arg in "$@"; do
@@ -691,22 +701,26 @@ ensure_guest_pnpm_for_dev_update() {
691701
}
692702

693703
run_dev_channel_update() {
694-
local bootstrap_bin guest_home update_root
704+
local bootstrap_bin guest_home update_root update_entry
695705
bootstrap_bin="/tmp/openclaw-smoke-pnpm-bootstrap/node_modules/.bin"
696706
guest_home="$(resolve_guest_current_user_home)"
697707
update_root="$guest_home/openclaw"
708+
update_entry="$update_root/openclaw.mjs"
698709
ensure_guest_pnpm_for_dev_update
699710
printf 'update-dev: run\n'
700711
guest_current_user_exec /bin/rm -rf "$update_root"
701712
guest_current_user_exec_path "$bootstrap_bin:$GUEST_EXEC_PATH" \
702713
"$GUEST_OPENCLAW_BIN" update --channel dev --yes --json
703-
guest_current_user_exec "$GUEST_OPENCLAW_BIN" --version
704-
guest_current_user_exec "$GUEST_OPENCLAW_BIN" update status --json
714+
printf 'update-dev: git-version\n'
715+
guest_current_user_node_cli "$update_entry" --version
716+
printf 'update-dev: git-status\n'
717+
guest_current_user_node_cli "$update_entry" update status --json
705718
}
706719

707720
verify_dev_channel_update() {
708-
local status_json
709-
status_json="$(guest_current_user_exec "$GUEST_OPENCLAW_BIN" update status --json)"
721+
local status_json update_entry
722+
update_entry="$(resolve_guest_git_openclaw_entry)"
723+
status_json="$(guest_current_user_node_cli "$update_entry" update status --json)"
710724
printf '%s\n' "$status_json"
711725
printf '%s\n' "$status_json" | grep -F '"installKind": "git"'
712726
printf '%s\n' "$status_json" | grep -F '"value": "dev"'

0 commit comments

Comments
 (0)