Openclaw parallels-discord-roundtrip
Run the macOS Parallels smoke harness with Discord end-to-end roundtrip verification, including guest send, host verification, host reply, and guest readback.
install
source · Clone the upstream repo
git clone https://github.com/openclaw/openclaw
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/openclaw "$T" && mkdir -p ~/.claude/skills && cp -r "$T/.agents/skills/parallels-discord-roundtrip" ~/.claude/skills/openclaw-openclaw-parallels-discord-roundtrip && rm -rf "$T"
OpenClaw · Install into ~/.openclaw/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/openclaw "$T" && mkdir -p ~/.openclaw/skills && cp -r "$T/.agents/skills/parallels-discord-roundtrip" ~/.openclaw/skills/openclaw-openclaw-parallels-discord-roundtrip && rm -rf "$T"
manifest:
.agents/skills/parallels-discord-roundtrip/SKILL.mdsource content
Parallels Discord Roundtrip
Use when macOS Parallels smoke must prove Discord two-way delivery end to end.
Goal
Cover:
- install on fresh macOS snapshot
- onboard + gateway health
- guest
to Discordmessage send - host sees that message on Discord
- host posts a new Discord message
- guest
sees that new messagemessage read
Inputs
- host env var with Discord bot token
- Discord guild ID
- Discord channel ID
OPENAI_API_KEY
Preferred run
export 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
Notes
- Snapshot target: closest to
.macOS 26.3.1 fresh - Snapshot resolver now prefers matching
clones when the base hint also matches. That lets the harness reuse disk-only recovery snapshots without passing a longer hint.*-poweroff* - If Windows/Linux snapshot restore logs show
, drop the suspended state once, create aPET_QUESTION_SNAPSHOT_STATE_INCOMPATIBLE_CPU
replacement snapshot, and rerun. The smoke scripts now auto-start restored power-off snapshots.*-poweroff* - Harness configures Discord inside the guest; no checked-in token/config.
- Use the
wrapper for guestopenclaw
;message send/read
does not expose the lazy message subcommands the same way.node openclaw.mjs message ... - Write
in one JSON object (channels.discord.guilds
), not dotted--strict-json
paths; numeric snowflakes get treated like array indexes.config set channels.discord.guilds.<snowflake>... - Avoid
/ expect for long Discord setup scripts; it line-wraps/corrupts long commands. Useprlctl enter
for the Discord config phase.prlctl exec --current-user /bin/sh -lc ... - Full 3-OS sweeps: the shared build lock is safe in parallel, but snapshot restore is still a Parallels bottleneck. Prefer serialized Windows/Linux restore-heavy reruns if the host is already under load.
- Harness cleanup deletes the temporary Discord smoke messages at exit.
- Per-phase logs:
/tmp/openclaw-parallels-smoke.* - Machine summary: pass
--json - If roundtrip flakes, inspect
andfresh.discord-roundtrip.log
in the run dir first.discord-last-readback.json
Pass criteria
- fresh lane or upgrade lane requested passes
- summary reports
for that lanediscord=pass - guest outbound nonce appears in channel history
- host inbound nonce appears in
outputopenclaw message read