惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

G
Google Developers Blog
有赞技术团队
有赞技术团队
WordPress大学
WordPress大学
博客园 - 司徒正美
D
Docker
B
Blog
V
Visual Studio Blog
Blog — PlanetScale
Blog — PlanetScale
U
Unit 42
S
SegmentFault 最新的问题
小众软件
小众软件
J
Java Code Geeks
美团技术团队
腾讯CDC
MyScale Blog
MyScale Blog
爱范儿
爱范儿
H
Help Net Security
宝玉的分享
宝玉的分享
Microsoft Azure Blog
Microsoft Azure Blog
A
About on SuperTechFans
Google DeepMind News
Google DeepMind News
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 三生石上(FineUI控件)
博客园 - 【当耐特】

Recent Commits to openclaw:main

test: merge chat side-result checks · openclaw/openclaw@ddd2c2a test: merge cron history checks · openclaw/openclaw@f7eb746 test: merge responsive navigation shell checks · openclaw/openclaw@c2e4b47 docs(changelog): add codex oauth fixes · openclaw/openclaw@628e6cd test: merge navigation routing cases · openclaw/openclaw@5d8cecb Tests: mock channel registry bundled fallback · openclaw/openclaw@2b08233 Secrets: avoid broad web search discovery for single plugin config · openclaw/openclaw@a464f59 test: merge config view browser checks · openclaw/openclaw@20cf511 fix(status): align oauth health with runtime · openclaw/openclaw@eed7116 feat: add macOS screen snapshots for monitor preview (#67954) thanks … · openclaw/openclaw@f377db1 fix: report shared auth scopes in hello-ok (#67810) thanks @BunsDev · openclaw/openclaw@0b6c39b Auto-reply: avoid eager bundled route fallback · openclaw/openclaw@3ea1bf4 Tests: narrow session binding contract setup · openclaw/openclaw@54e4e16 fix(macOS): enable undo/redo in webchat composer text input (#34962) · openclaw/openclaw@00951dc Tests: speed up channel setup promotion · openclaw/openclaw@82b529a Docs: refresh agent instructions · openclaw/openclaw@5775fe2 fix(auth): serialize OAuth refresh across agents to fix #26322 (#67876) · openclaw/openclaw@8e79080 test: allow ollama public surface boundary test · openclaw/openclaw@7d4f1a6 Docs: add test performance guardrails · openclaw/openclaw@89706d3 Tests: restore context-engine usage proof · openclaw/openclaw@e4c4f95 Tests: slim context engine runtime coverage · openclaw/openclaw@74c198f ci: retry failed custom checkouts · openclaw/openclaw@0ee5baf test: trim duplicate provider auth onboarding cases · openclaw/openclaw@1ffc02e matrix: fix sessions_spawn --thread subagent session spawning (#67643) · openclaw/openclaw@1ce2596 test: reduce auth choice fixture churn · openclaw/openclaw@857b9cd test: mock health status config boundaries · openclaw/openclaw@9d5ab4a test: mock onboard config io boundary · openclaw/openclaw@299694d test: mock legacy state plugin boundaries · openclaw/openclaw@2713089 test: mock channel install boundaries · openclaw/openclaw@b945248 test: mock doctor preview channel boundaries · openclaw/openclaw@b1a3ad4
Revert "docs(agents): document testbox maintainer workflo...
vincentkoc · 2026-04-27 · via Recent Commits to openclaw:main

@@ -10,9 +10,8 @@ description: Run Blacksmith Testbox for CI-parity checks, secrets, hosted servic

1010

Use Testbox when you need remote CI parity, injected secrets, hosted services,

1111

or an OS/runtime image that your local machine cannot provide cheaply.

121213-

Do not default to Testbox for every local test/build loop unless the repo or

14-

the user's personal maintainer rules explicitly say Testbox-first. If the repo

15-

has documented local commands for normal iteration, use those first so you keep

13+

Do not default to Testbox for every local test/build loop. If the repo has

14+

documented local commands for normal iteration, use those first so you keep

1615

warm caches, local build state, and fast feedback.

17161817

Testbox is the expensive path. Reach for it deliberately.

@@ -82,20 +81,17 @@ Prefer Testbox when:

8281

- you are reproducing CI-only failures

8382

- you need the exact workflow image/job environment from GitHub Actions

848385-

For OpenClaw specifically, contributor and routine local iteration should stay

86-

local:

84+

For OpenClaw specifically, normal local iteration should stay local:

87858886

- `pnpm check:changed`

8987

- `pnpm test:changed`

9088

- `pnpm test <path-or-filter>`

9189

- `pnpm test:serial`

9290

- `pnpm build`

939194-

OpenClaw maintainer mode is different. If the user has Blacksmith access and

95-

sets `OPENCLAW_TESTBOX=1`, or their personal agent rules say Testbox-first,

96-

route broad, slow, Docker, live, E2E, full-suite, and CI-parity validation

97-

through Testbox by default. `OPENCLAW_LOCAL_CHECK_MODE=throttled` remains the

98-

escape hatch for laptop-friendly local proof.

92+

Only use Testbox in OpenClaw when the user explicitly wants CI-parity or the

93+

check truly depends on remote secrets/services that the local repo loop cannot

94+

provide.

999510096

For installable-package product proof, prefer the GitHub `Package Acceptance`

10197

workflow over an ad hoc Testbox command. It resolves one package candidate

@@ -115,35 +111,13 @@ an ID instantly and boots the CI environment in the background while you work:

115111116112

Save this ID. You need it for every `run` command.

117113118-

For long-ish OpenClaw maintainer tasks in Testbox mode, pre-warm at the start

119-

with a longer idle timeout:

120-121-

blacksmith testbox warmup ci-check-testbox.yml --idle-timeout 90

122-

# → tbx_01jkz5b3t9...

123-124-

The CLI and current docs expose `--idle-timeout <minutes>` and document the

125-

default as 30 minutes, but do not publish a universal maximum. OpenClaw policy:

126-

use `90` for normal long-ish tasks, `240` for multi-hour work, `720` for

127-

all-day work, and `1440` for overnight work. Anything above `1440` minutes

128-

requires explicit user intent and an end-of-task cleanup check.

129-130-

Observed on 2026-04-27: Blacksmith accepted `90`, `240`, `720`, `1440`,

131-

`4320`, `10080`, `43200`, and even `525600` minutes, with every probe box

132-

stopped immediately. Treat that as "no sane visible cap", not permission to

133-

leave giant-idle boxes around.

134-135-

Choose the warmup ref deliberately. `--ref <branch|tag|sha>` can point at a

136-

branch, tag, or SHA. For cache seeding, prefer exact current branch/SHA for

137-

correctness; use the latest `beta` or `latest` release SHA only as a warm cache

138-

seed, then still run the build/check that proves local synced changes.

139-140114

Warmup dispatches a GitHub Actions workflow that provisions a VM with the

141115

full CI environment: dependencies installed, services started, secrets

142116

injected, and a clean checkout of the repo at the default branch.

143117144118

Options:

145119146-

--ref <branch|tag|sha> Git ref to dispatch against (default: repo's default branch)

120+

--ref <branch> Git ref to dispatch against (default: repo's default branch)

147121

--job <name> Specific job within the workflow (if it has multiple)

148122

--idle-timeout <min> Idle timeout in minutes (default: 30)

149123

@@ -276,27 +250,18 @@ checks that need parity or remote state.

276250277251

## Workflow

278252279-

1. Decide whether the repo's local loop or maintainer Testbox mode is the right

280-

default.

253+

1. Decide whether the repo's local loop is the right default.

281254

2. Only if Testbox is warranted, warm up early:

282-

`blacksmith testbox warmup ci-check-testbox.yml --idle-timeout 90` → save the ID.

283-

Use `--idle-timeout 240`, `720`, or `1440` only when the task duration

284-

justifies it.

255+

`blacksmith testbox warmup ci-check-testbox.yml` → save the ID

285256

3. Write code while the testbox boots in the background.

286257

4. Run the remote command when needed:

287258

`blacksmith testbox run --id <ID> "npm test"`

288-

5. If tests fail, fix code and re-run against the same warm box. Reuse this

289-

same `tbx_...` for every run/download in the task unless it expires, the

290-

workflow/ref/env must change, or the user asks for a fresh box.

259+

5. If tests fail, fix code and re-run against the same warm box.

291260

6. If you changed dependency manifests (package.json, etc.), prepend

292261

the install command: `blacksmith testbox run --id <ID> "npm install && npm test"`

293262

7. If you need artifacts (coverage reports, build outputs, etc.), download them:

294263

`blacksmith testbox download --id <ID> coverage/ ./coverage/`

295264

8. Once green, commit and push.

296-

9. If you used a long timeout or created probe boxes, clean up with

297-

`blacksmith testbox list` and `blacksmith testbox stop --id <ID>`. Stop only

298-

boxes from the current task unless the user asks you to clean up other active

299-

boxes.

300265301266

## OpenClaw full test suite

302267

@@ -369,24 +334,10 @@ timeout is reached). Default timeout is 5m; use `--wait-timeout` for longer

369334

Testboxes automatically shut down after being idle (default: 30 minutes).

370335

If you need a longer session, increase the timeout at warmup time:

371336372-

blacksmith testbox warmup ci-check-testbox.yml --idle-timeout 90

373-374-

For OpenClaw maintainer work, use coarse timeout bins instead of probing many

375-

small values:

376-377-

- `90` minutes: default long-ish task

378-

- `240` minutes: multi-hour task

379-

- `720` minutes: all-day task

380-

- `1440` minutes: overnight task; max without explicit user intent

381-382-

Because the service currently accepts much larger values, cleanup is part of

383-

the workflow, not a nice-to-have:

384-385-

blacksmith testbox list

386-

blacksmith testbox stop --id <ID>

337+

blacksmith testbox warmup ci-check-testbox.yml --idle-timeout 60

387338388339

## With options

389340390341

blacksmith testbox warmup ci-check-testbox.yml --ref main

391-

blacksmith testbox warmup ci-check-testbox.yml --idle-timeout 240

342+

blacksmith testbox warmup ci-check-testbox.yml --idle-timeout 60

392343

blacksmith testbox run --id <ID> "go test ./..."