diff --git a/.github/workflows/mantis-discord-status-reactions.yml b/.github/workflows/mantis-discord-status-reactions.yml index 5ce773d5b38..c16446a8f43 100644 --- a/.github/workflows/mantis-discord-status-reactions.yml +++ b/.github/workflows/mantis-discord-status-reactions.yml @@ -255,23 +255,23 @@ jobs: - name: Build Mantis harness run: pnpm build + - name: Setup Go for Crabbox CLI + uses: actions/setup-go@v6 + with: + go-version: "1.26.x" + cache: false + - name: Install Crabbox CLI - env: - GH_TOKEN: ${{ github.token }} shell: bash run: | set -euo pipefail install_dir="${RUNNER_TEMP}/crabbox" mkdir -p "$install_dir" "$HOME/.local/bin" - gh release download \ - --repo openclaw/crabbox \ - --pattern 'crabbox_*_linux_amd64.tar.gz' \ - --dir "$install_dir" \ - --clobber - tar -xzf "$install_dir"/crabbox_*_linux_amd64.tar.gz -C "$install_dir" - install -m 0755 "$install_dir/crabbox" "$HOME/.local/bin/crabbox" + git clone --depth 1 https://github.com/openclaw/crabbox.git "$install_dir/src" + go build -C "$install_dir/src" -o "$HOME/.local/bin/crabbox" ./cmd/crabbox echo "$HOME/.local/bin" >> "$GITHUB_PATH" "$HOME/.local/bin/crabbox" --version + "$HOME/.local/bin/crabbox" warmup --help 2>&1 | grep -q -- "--desktop" - name: Prepare baseline and candidate worktrees shell: bash diff --git a/docs/concepts/mantis.md b/docs/concepts/mantis.md index 49826a33c9c..8c0602e9bd8 100644 --- a/docs/concepts/mantis.md +++ b/docs/concepts/mantis.md @@ -123,7 +123,9 @@ worktrees, runs `discord-status-reactions-tool-only` against each worktree, and uploads `baseline/`, `candidate/`, `comparison.json`, and `mantis-report.md` as Actions artifacts. It also renders each lane's timeline HTML in a Crabbox desktop browser and publishes those VNC screenshots beside the deterministic -timeline PNGs in the PR comment. +timeline PNGs in the PR comment. The workflow builds the Crabbox CLI from +`openclaw/crabbox` main so it can use the current desktop/browser lease flags +before the next Crabbox binary release is cut. You can also trigger the status-reactions run directly from a PR comment: