You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: .agents/skills/openclaw-parallels-smoke/SKILL.md
+7-2Lines changed: 7 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -14,7 +14,7 @@ Use this skill for Parallels guest workflows and smoke interpretation. Do not lo
14
14
- Stable `2026.3.12` pre-upgrade diagnostics may require a plain `gateway status --deep` fallback.
15
15
- Treat `precheck=latest-ref-fail` on that stable pre-upgrade lane as baseline, not automatically a regression.
16
16
- Pass `--json` for machine-readable summaries.
17
-
- Per-phase logs land under `/tmp/openclaw-parallels-*`.
17
+
- Per-phase logs land under `.artifacts/parallels/openclaw-parallels-*` by default. Override with `OPENCLAW_PARALLELS_ARTIFACT_ROOT` when a run needs another artifact volume.
18
18
- Do not run local and gateway agent turns in parallel on the same fresh workspace or session.
19
19
- Hard-cap every top-level Parallels lane with host `timeout --foreground` (or `gtimeout --foreground` if that is the available binary) so a stalled install, snapshot switch, or `prlctl exec` transport cannot consume the rest of the testing window. Defaults:
20
20
- macOS: `75m`
@@ -68,8 +68,13 @@ Use this skill for Parallels guest workflows and smoke interpretation. Do not lo
68
68
- The Windows same-guest update helper should write stage markers to its log before long steps like tgz download and `npm install -g` so the outer progress monitor does not sit on `waiting for first log line` during healthy but quiet installs.
69
69
- Linux same-guest update verification should also export `HOME=/root`, pass `OPENAI_API_KEY` via `prlctl exec ... /usr/bin/env`, and use `openclaw agent --local`; the fresh Linux baseline does not rely on persisted gateway credentials.
70
70
- The npm-update wrapper now prints per-lane progress from the nested log files. If a lane still looks stuck, inspect the nested logs in `runDir` first (`macos-fresh.log`, `windows-fresh.log`, `linux-fresh.log`, `macos-update.log`, `windows-update.log`, `linux-update.log`) instead of assuming the outer wrapper hung.
71
-
- If the wrapper fails a lane, read the auto-dumped tail first, then the full nested lane log under `/tmp/openclaw-parallels-npm-update.*`.
71
+
- Each run writes both `summary.json` and `summary.md`; read the markdown first for quick human triage, then the JSON/timings for automation.
72
+
- For full beta validation after a tag is published, prefer one command:
This resolves `beta3` to the latest `*-beta.3` version, runs latest->that-version same-guest update coverage, and then runs fresh install smoke for that exact published target on the same selected OS matrix. Use `--platform macos|windows|linux` to narrow reruns.
75
+
- If the wrapper fails a lane, read the auto-dumped tail first, then the full nested lane log under `.artifacts/parallels/openclaw-parallels-npm-update.*`.
72
76
- Current known macOS update-lane transport signature when the fallback is missing or bypassed: `Unable to authenticate the user. Make sure that the specified credentials are correct and try again.` Treat that as Parallels current-user authentication before blaming npm or OpenClaw.
77
+
- A macOS packaged fresh install with global package directories or bundled files mode `0777` usually means the harness used the root `prlctl exec` fallback under a permissive umask. The POSIX guest transports should prepend `umask 022`; verify the phase preflight line before blaming npm.
Copy file name to clipboardExpand all lines: docs/ci.md
+83-6Lines changed: 83 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -493,16 +493,93 @@ The sanity check fails fast when required root files such as `pnpm-lock.yaml` di
493
493
494
494
`pnpm testbox:run` also terminates a local Blacksmith CLI invocation that stays in the sync phase for more than five minutes without post-sync output. Set `OPENCLAW_TESTBOX_SYNC_TIMEOUT_MS=0` to disable that guard, or use a larger millisecond value for unusually large local diffs.
495
495
496
-
Crabbox is the repo-owned second remote-box path for Linux proof when Blacksmith is unavailable or when owned cloud capacity is preferable. Warm a box, hydrate it through the project workflow, then run commands through the Crabbox CLI:
496
+
Crabbox is the repo-owned remote-box wrapper for maintainer Linux proof. Use it when a check is too broad for a local edit loop, when CI parity matters, or when the proof needs secrets, Docker, package lanes, reusable boxes, or remote logs. The normal OpenClaw backend is `blacksmith-testbox`; owned AWS/Hetzner capacity is a fallback for Blacksmith outages, quota issues, or explicit owned-capacity testing.
497
+
498
+
Before a first run, check the wrapper from the repo root:
499
+
500
+
```bash
501
+
pnpm crabbox:run -- --help | sed -n '1,120p'
502
+
```
503
+
504
+
The repo wrapper refuses a stale Crabbox binary that does not advertise `blacksmith-testbox`. Pass the provider explicitly even though `.crabbox.yaml` has owned-cloud defaults.
Read the final JSON summary. The useful fields are `provider`, `leaseId`, `syncDelegated`, `exitCode`, `commandMs`, and `totalMs`. One-shot Blacksmith-backed Crabbox runs should stop the Testbox automatically; if a run is interrupted or cleanup is unclear, inspect live boxes and stop only the boxes you created:
552
+
553
+
```bash
554
+
blacksmith testbox list
555
+
blacksmith testbox stop --id <tbx_id>
556
+
```
557
+
558
+
Use reuse only when you intentionally need multiple commands on the same hydrated box:
Escalate to owned Crabbox capacity only when Blacksmith is down, quota-limited, missing the needed environment, or owned capacity is explicitly the goal:
`.crabbox.yaml` owns provider, sync, and GitHub Actions hydration defaults. It excludes local `.git` so the hydrated Actions checkout keeps its own remote Git metadata instead of syncing maintainer-local remotes and object stores, and it excludes local runtime/build artifacts that should never be transferred. `.github/workflows/crabbox-hydrate.yml` owns checkout, Node/pnpm setup, `origin/main` fetch, and the non-secret environment handoff that later`crabbox run --id <cbx_id>` commands source.
582
+
`.crabbox.yaml` owns provider, sync, and GitHub Actions hydration defaults for owned-cloud lanes. It excludes local `.git` so the hydrated Actions checkout keeps its own remote Git metadata instead of syncing maintainer-local remotes and object stores, and it excludes local runtime/build artifacts that should never be transferred. `.github/workflows/crabbox-hydrate.yml` owns checkout, Node/pnpm setup, `origin/main` fetch, and the non-secret environment handoff for owned-cloud`crabbox run --id <cbx_id>` commands.
Copy file name to clipboardExpand all lines: docs/cli/plugins.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -134,7 +134,7 @@ is available, then fall back to `latest`.
134
134
135
135
Use `npm:<package>` when you want to make npm resolution explicit. Bare package specs also install directly from npm during the launch cutover.
136
136
137
-
Bare specs and `@latest` stay on the stable track. If npm resolves either of those to a prerelease, OpenClaw stops and asks you to opt in explicitly with a prerelease tag such as `@beta`/`@rc` or an exact prerelease version such as `@1.2.3-beta.4`.
137
+
Bare specs and `@latest` stay on the stable track. OpenClaw date-stamped correction versions such as `2026.5.3-1` are stable releases for this check. If npm resolves either of those to a prerelease, OpenClaw stops and asks you to opt in explicitly with a prerelease tag such as `@beta`/`@rc` or an exact prerelease version such as `@1.2.3-beta.4`.
138
138
139
139
If a bare install spec matches an official plugin id (for example `diffs`), OpenClaw installs the catalog entry directly. To install an npm package with the same name, use an explicit scoped spec (for example `@scope/diffs`).
Copy file name to clipboardExpand all lines: docs/cli/proxy.md
+1Lines changed: 1 addition & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -68,6 +68,7 @@ semantics.
68
68
69
69
-`start` defaults to `127.0.0.1` unless `--host` is set.
70
70
-`run` starts a local debug proxy and then runs the command after `--`.
71
+
- The debug proxy's direct upstream forwarding opens upstream sockets for diagnostics. When OpenClaw managed proxy mode is active, direct forwarding for proxy requests and CONNECT tunnels is disabled by default; set `OPENCLAW_DEBUG_PROXY_ALLOW_DIRECT_CONNECT_WITH_MANAGED_PROXY=1` only for approved local diagnostics.
71
72
-`validate` exits with code 1 when proxy config or destination checks fail.
72
73
- Captures are local debugging data; use `openclaw proxy purge` when finished.
Copy file name to clipboardExpand all lines: docs/concepts/mantis.md
+45Lines changed: 45 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -111,6 +111,51 @@ Useful desktop smoke flags:
111
111
-`--keep-lease` or `OPENCLAW_MANTIS_KEEP_VM=1` keeps a newly created passing lease open for VNC inspection. Failed runs keep the lease by default when one was created so an operator can reconnect.
112
112
-`--class`, `--idle-timeout`, and `--ttl` tune machine size and lease lifetime.
113
113
114
+
The first full desktop transport primitive is the Slack desktop smoke:
It leases or reuses a Crabbox desktop machine, syncs the current checkout into
125
+
the VM, runs `pnpm openclaw qa slack` inside that VM, opens Slack Web in the VNC
126
+
browser, captures the visible desktop, and copies both the Slack QA artifacts and
127
+
the VNC screenshot back to the local output directory. This is the first Mantis
128
+
shape where the SUT OpenClaw gateway and the browser both live inside the same
129
+
Linux desktop VM.
130
+
131
+
With `--gateway-setup`, the command prepares a persistent disposable OpenClaw
132
+
home at `$HOME/.openclaw-mantis/slack-openclaw`, patches Slack Socket Mode
133
+
configuration for the selected channel, starts `openclaw gateway run` on port
134
+
`38973`, and keeps Chrome running in the VNC session. This is the "leave me a
135
+
Linux desktop with Slack and a claw running" mode; the bot-to-bot Slack QA lane
136
+
remains the default when `--gateway-setup` is omitted.
137
+
138
+
Required inputs for `--credential-source env`:
139
+
140
+
-`OPENCLAW_QA_SLACK_CHANNEL_ID`
141
+
-`OPENCLAW_QA_SLACK_DRIVER_BOT_TOKEN`
142
+
-`OPENCLAW_QA_SLACK_SUT_BOT_TOKEN`
143
+
-`OPENCLAW_QA_SLACK_SUT_APP_TOKEN`
144
+
-`OPENCLAW_LIVE_OPENAI_KEY` for the remote model lane. If only
145
+
`OPENAI_API_KEY` is set locally, Mantis maps it to `OPENCLAW_LIVE_OPENAI_KEY`
146
+
before invoking Crabbox so Crabbox's `OPENCLAW_*` env forwarding can carry it
147
+
into the VM.
148
+
149
+
Useful Slack desktop flags:
150
+
151
+
-`--lease-id <cbx_...>` reruns against a machine where an operator already logged in to Slack Web through VNC.
152
+
-`--gateway-setup` starts a persistent OpenClaw Slack gateway in the VM instead of only running the bot-to-bot QA lane.
153
+
-`--slack-url <url>` opens a specific Slack Web URL. Without it, Mantis derives `https://app.slack.com/client/<team>/<channel>` from Slack `auth.test` when the SUT bot token is available.
154
+
-`--slack-channel-id <id>` controls the Slack channel allowlist used by gateway setup.
155
+
-`OPENCLAW_MANTIS_SLACK_BROWSER_PROFILE_DIR` controls the persistent Chrome profile inside the VM. The default is `$HOME/.config/openclaw-mantis/slack-chrome-profile`, so a manual Slack Web login survives reruns on the same lease.
156
+
-`--credential-source convex --credential-role ci` uses the shared credential pool instead of direct Slack env tokens.
157
+
-`--provider-mode`, `--model`, `--alt-model`, and `--fast` pass through to the Slack live lane.
158
+
114
159
The GitHub smoke workflow is `Mantis Discord Smoke`. The before and after GitHub
115
160
workflow for the first real scenario is `Mantis Discord Status Reactions`. It
0 commit comments