diff --git a/.agents/skills/crabbox/SKILL.md b/.agents/skills/crabbox/SKILL.md index 8a133847c35e..483d83166499 100644 --- a/.agents/skills/crabbox/SKILL.md +++ b/.agents/skills/crabbox/SKILL.md @@ -45,6 +45,10 @@ pnpm crabbox:run -- --help | sed -n '1,120p' shim can be stale. - Check `.crabbox.yaml` for direct-provider defaults. Omitting `--provider` means brokered AWS today. +- The brokered AWS default is a Linux developer image in `eu-west-1`; the repo + config pins hot `eu-west-1a/b/c` placement so Fast Snapshot Restore can apply. + If warmup drifts well past the minute-scale path, verify image promotion, + region/AZ placement, and FSR state before blaming OpenClaw. - For broad OpenClaw maintainer `pnpm` gates, prefer the repo wrapper with `--provider blacksmith-testbox` or the repo Testbox helpers when the standing Testbox policy applies. @@ -78,6 +82,25 @@ Use these only when the task needs an existing non-Linux host. OpenClaw broad Linux validation uses the repo Crabbox config unless a provider is explicitly requested. +Native brokered Windows is available for Windows-specific proof. Use the AWS +developer image in `us-west-2` on demand; it has the expected OpenClaw developer +toolchain and Docker image cache. Keep broad Linux gates on Linux/Testbox unless +the bug is Windows-specific: + +```sh +../crabbox/bin/crabbox warmup \ + --provider aws \ + --target windows \ + --windows-mode normal \ + --region us-west-2 \ + --market on-demand \ + --timing-json +``` + +The hydrate workflow assumes Docker should already be baked into Linux images +and only installs it as a fallback. Do not add per-run Docker installs to proof +commands unless the image probe shows Docker is actually missing. + When the user explicitly asks for brokered macOS runners, use Crabbox AWS macOS only after confirming the deployed coordinator supports EC2 Mac host lifecycle/image routes and the operator has AWS EC2 Mac Dedicated Host quota diff --git a/.crabbox.yaml b/.crabbox.yaml index d745f9d837ae..92d690612586 100644 --- a/.crabbox.yaml +++ b/.crabbox.yaml @@ -6,6 +6,10 @@ capacity: strategy: most-available fallback: on-demand-after-120s hints: true + availabilityZones: + - eu-west-1a + - eu-west-1b + - eu-west-1c regions: - eu-west-1 - eu-west-2 diff --git a/.github/workflows/crabbox-hydrate.yml b/.github/workflows/crabbox-hydrate.yml index 34fec3628014..6eba2b9d082c 100644 --- a/.github/workflows/crabbox-hydrate.yml +++ b/.github/workflows/crabbox-hydrate.yml @@ -62,17 +62,20 @@ jobs: sudo ln -sf "$node_bin/corepack" /usr/local/bin/corepack sudo ln -sf "$pnpm_bin" /usr/local/bin/pnpm - - name: Ensure Docker is available + - name: Ensure Docker is running shell: bash run: | set -euo pipefail if ! command -v docker >/dev/null 2>&1; then + echo "docker not found; installing fallback engine" curl -fsSL https://get.docker.com | sudo sh fi if command -v systemctl >/dev/null 2>&1; then - sudo systemctl start docker + sudo systemctl start docker || true + elif command -v service >/dev/null 2>&1; then + sudo service docker start || true fi if [ -S /var/run/docker.sock ]; then @@ -82,6 +85,10 @@ jobs: sudo chmod 666 /var/run/docker.sock fi + docker version + docker buildx version || true + docker compose version || true + - name: Hydrate provider env helper shell: bash env: