diff --git a/.openclaw-sync/source.json b/.openclaw-sync/source.json index a8a90a8e7..bde3751dd 100644 --- a/.openclaw-sync/source.json +++ b/.openclaw-sync/source.json @@ -1,5 +1,5 @@ { "repository": "openclaw/openclaw", - "sha": "33b112ad314dc8d9dfe0f5a68caed4811a23245a", - "syncedAt": "2026-05-06T23:03:07.523Z" + "sha": "b2368e10404452fca448f71b74134e62b9083f1b", + "syncedAt": "2026-05-06T23:42:18.831Z" } diff --git a/docs/ci.md b/docs/ci.md index aedb6e037..5b2134f88 100644 --- a/docs/ci.md +++ b/docs/ci.md @@ -553,7 +553,8 @@ pnpm crabbox:run -- --provider blacksmith-testbox \ 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: ```bash -blacksmith testbox list +blacksmith testbox list --all +blacksmith testbox status --id blacksmith testbox stop --id ``` @@ -572,15 +573,25 @@ blacksmith testbox run --id "env CI=1 NODE_OPTIONS=--max-old-space-size blacksmith testbox stop --id ``` +If `blacksmith testbox list --all` and `blacksmith testbox status` work but new +warmups sit `queued` with no IP or Actions run URL after a couple of minutes, +treat it as Blacksmith provider, queue, billing, or org-limit pressure. Stop the +queued ids you created, avoid starting more Testboxes, and move the proof to the +owned Crabbox capacity path below while someone checks the Blacksmith dashboard, +billing, and org limits. + Escalate to owned Crabbox capacity only when Blacksmith is down, quota-limited, missing the needed environment, or owned capacity is explicitly the goal: ```bash -pnpm crabbox:warmup -- --provider aws --class beast --market on-demand --idle-timeout 90m +CRABBOX_CAPACITY_REGIONS=eu-west-1,eu-west-2,eu-central-1,us-east-1,us-west-2 \ + pnpm crabbox:warmup -- --provider aws --class standard --market on-demand --idle-timeout 90m pnpm crabbox:hydrate -- --id pnpm crabbox:run -- --id --timing-json --shell -- "env NODE_OPTIONS=--max-old-space-size=4096 OPENCLAW_TEST_PROJECTS_PARALLEL=6 OPENCLAW_VITEST_MAX_WORKERS=1 OPENCLAW_VITEST_NO_OUTPUT_TIMEOUT_MS=900000 pnpm check:changed" pnpm crabbox:stop -- ``` +Under AWS pressure, avoid `class=beast` unless the task really needs 48xlarge-class CPU. A `beast` request starts at 192 vCPUs and is the easiest way to trip regional EC2 Spot or On-Demand Standard quota. The repo-owned `.crabbox.yaml` defaults to `standard`, multiple capacity regions, and `capacity.hints: true` so brokered AWS leases print selected region/market, quota pressure, Spot fallback, and high-pressure class warnings. Use `fast` for heavier broad checks, `large` only after standard/fast are not enough, and `beast` only for exceptional CPU-bound lanes such as full-suite or all-plugin Docker matrices, explicit release/blocker validation, or high-core performance profiling. Do not use `beast` for `pnpm check:changed`, focused tests, docs-only work, ordinary lint/typecheck, small E2E repros, or Blacksmith outage triage. Use `--market on-demand` for capacity diagnosis so Spot market churn is not mixed into the signal. + `.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 ` commands. ## Related