Run the macOS Parallels smoke harness with Discord end-to-end roundtrip verification, including guest send, host verification, host reply, and guest readback.
Use when macOS Parallels smoke must prove Discord two-way delivery end to end.
Cover:
message send to Discordmessage read sees that new messageOPENAI_API_KEYexport OPENCLAW_PARALLELS_DISCORD_TOKEN="$(
ssh peters-mac-studio-1 'jq -r ".channels.discord.token" ~/.openclaw/openclaw.json' | tr -d '\n'
)"
pnpm test:parallels:macos \
--discord-token-env OPENCLAW_PARALLELS_DISCORD_TOKEN \
--discord-guild-id 1456350064065904867 \
--discord-channel-id 1456744319972282449 \
--json
macOS 26.3.1 fresh.*-poweroff* clones when the base hint also matches. That lets the harness reuse disk-only recovery snapshots without passing a longer hint.PET_QUESTION_SNAPSHOT_STATE_INCOMPATIBLE_CPU, drop the suspended state once, create a *-poweroff* replacement snapshot, and rerun. The smoke scripts now auto-start restored power-off snapshots.openclaw wrapper for guest message send/read; node openclaw.mjs message ... does not expose the lazy message subcommands the same way.channels.discord.guilds in one JSON object (--strict-json), not dotted config set channels.discord.guilds.<snowflake>... paths; numeric snowflakes get treated like array indexes.prlctl enter / expect for long Discord setup scripts; it line-wraps/corrupts long commands. Use prlctl exec --current-user /bin/sh -lc ... for the Discord config phase./tmp/openclaw-parallels-smoke.*--jsonfresh.discord-roundtrip.log and discord-last-readback.json in the run dir first.discord=pass for that laneopenclaw message read output