diff --git a/.agents/skills/openclaw-parallels-smoke/SKILL.md b/.agents/skills/openclaw-parallels-smoke/SKILL.md index 2a597cf012d..23fbc533584 100644 --- a/.agents/skills/openclaw-parallels-smoke/SKILL.md +++ b/.agents/skills/openclaw-parallels-smoke/SKILL.md @@ -46,6 +46,7 @@ Use this skill for Parallels guest workflows and smoke interpretation. Do not lo - Always use `prlctl exec --current-user`; plain `prlctl exec` lands in `NT AUTHORITY\\SYSTEM`. - Prefer explicit `npm.cmd` and `openclaw.cmd`. - Use PowerShell only as the transport with `-ExecutionPolicy Bypass`, then call the `.cmd` shims from inside it. +- Multi-word `openclaw agent --message ...` checks should call `& $openclaw ...` inside PowerShell, not `Start-Process ... -ArgumentList` against `openclaw.cmd`, or Commander can see split argv and throw `too many arguments for 'agent'`. - Windows installer/tgz phases now retry once after guest-ready recheck; keep new Windows smoke steps idempotent so a transport-flake retry is safe. - Keep onboarding and status output ASCII-clean in logs; fancy punctuation becomes mojibake in current capture paths. - If you hit an older run with `rc=255` plus an empty `fresh.install-main.log` or `upgrade.install-main.log`, treat it as a likely `prlctl exec` transport drop after guest start-up, not immediate proof of an npm/package failure. diff --git a/scripts/e2e/parallels-windows-smoke.sh b/scripts/e2e/parallels-windows-smoke.sh index 07423b63f55..529ea1871a5 100644 --- a/scripts/e2e/parallels-windows-smoke.sh +++ b/scripts/e2e/parallels-windows-smoke.sh @@ -333,32 +333,22 @@ guest_run_openclaw() { local env_value="${2:-}" shift 2 - local args_literal stdout_name stderr_name env_name_q env_value_q + local args_literal env_name_q env_value_q args_literal="$(ps_array_literal "$@")" - stdout_name="openclaw-stdout-$RANDOM-$RANDOM.log" - stderr_name="openclaw-stderr-$RANDOM-$RANDOM.log" env_name_q="$(ps_single_quote "$env_name")" env_value_q="$(ps_single_quote "$env_value")" guest_powershell "$(cat <&1 +if (\$null -ne \$output) { + \$output | ForEach-Object { \$_ } +} +exit \$LASTEXITCODE EOF )" }