Skip to content

Commit 15cf492

Browse files
committed
build: refresh deps and route testbox through crabbox
1 parent 8ccd3e9 commit 15cf492

531 files changed

Lines changed: 1098 additions & 2489 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.agents/skills/crabbox/SKILL.md

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -294,18 +294,19 @@ Common Crabbox-only failures:
294294
report the capacity blocker.
295295

296296
If Crabbox cannot dispatch, sync, attach, or stop but Blacksmith itself works,
297-
use direct Blacksmith from the repo root:
297+
first try the same command through the repo wrapper with `--debug` and
298+
`--timing-json`:
298299

299300
```sh
300-
blacksmith testbox warmup ci-check-testbox.yml --ref main --idle-timeout 90
301-
blacksmith testbox run --id <tbx_id> "env CI=1 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 test:changed"
302-
blacksmith testbox stop --id <tbx_id>
301+
pnpm crabbox:run -- --provider blacksmith-testbox --debug --timing-json -- \
302+
CI=1 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 test:changed
303303
```
304304

305-
Direct full suite:
305+
Full suite:
306306

307307
```sh
308-
blacksmith testbox run --id <tbx_id> "env CI=1 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 test"
308+
pnpm crabbox:run -- --provider blacksmith-testbox --debug --timing-json -- \
309+
CI=1 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 test
309310
```
310311

311312
Auth fallback, only when `blacksmith` says auth is missing:
@@ -340,16 +341,15 @@ The hydration workflow owns checkout, Node/pnpm setup, dependency install,
340341
secrets, ready marker, and keepalive. Crabbox owns dispatch, sync, SSH command
341342
execution, timing, logs/results, and cleanup.
342343

343-
Minimal direct Blacksmith fallback, from repo root:
344+
Minimal Blacksmith-backed Crabbox run, from repo root:
344345

345346
```sh
346-
blacksmith testbox warmup ci-check-testbox.yml --ref main --idle-timeout 90
347-
blacksmith testbox run --id <tbx_id> "env CI=1 NODE_OPTIONS=--max-old-space-size=4096 OPENCLAW_TEST_PROJECTS_PARALLEL=6 OPENCLAW_VITEST_MAX_WORKERS=1 pnpm test:changed"
348-
blacksmith testbox stop --id <tbx_id>
347+
pnpm crabbox:run -- --provider blacksmith-testbox --timing-json -- \
348+
CI=1 NODE_OPTIONS=--max-old-space-size=4096 OPENCLAW_TEST_PROJECTS_PARALLEL=6 OPENCLAW_VITEST_MAX_WORKERS=1 pnpm test:changed
349349
```
350350

351-
Use direct Blacksmith only when Crabbox is the broken layer and Blacksmith
352-
itself still works. Prefer direct `blacksmith testbox list` for cleanup
351+
Use direct Blacksmith only when Crabbox is the broken layer and you are
352+
isolating a Crabbox bug. Prefer direct `blacksmith testbox list` for cleanup
353353
diagnostics, not as a reusable work queue.
354354

355355
Important Blacksmith footguns:

.agents/skills/openclaw-test-performance/SKILL.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -92,11 +92,11 @@ barrels, package-boundary tests, or extension suites.
9292
- runtime capture should be quiet and config-tolerant.
9393
- command output should include wall time, exit code, and peak RSS when
9494
available.
95-
4. For broad or package-heavy plugin proof, use Blacksmith Testbox by default on
96-
maintainer machines. Warm once and reuse the same box:
97-
- `blacksmith testbox warmup ci-check-testbox.yml --ref main --idle-timeout 90`
98-
- `blacksmith testbox run --id <ID> "OPENCLAW_TESTBOX=1 pnpm test:extensions:batch <ids>"`
99-
- stop the box when done.
95+
4. For broad or package-heavy plugin proof, use Crabbox-backed Blacksmith
96+
Testbox by default on maintainer machines:
97+
- `pnpm crabbox:run -- --provider blacksmith-testbox --timing-json -- OPENCLAW_TESTBOX=1 pnpm test:extensions:batch <ids>`
98+
- add `--keep`/`--id <id-or-slug>` only when several commands must share one
99+
warmed box; stop it with `pnpm crabbox:stop -- <id-or-slug>`.
100100
5. If plugin performance is package-artifact sensitive, switch to
101101
`openclaw-pre-release-plugin-testing` and Package Acceptance rather than
102102
trusting source-only timing.

.agents/skills/openclaw-testing/SKILL.md

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -36,14 +36,11 @@ Prove the touched surface first. Do not reflexively run the whole suite.
3636
- Prefer GitHub Actions for release/Docker proof when the workflow already has the prepared image and secrets.
3737
- Use `scripts/committer "<msg>" <paths...>` when committing; stage only your files.
3838
- If deps are missing, run `pnpm install`, retry once, then report the first actionable error.
39-
- For Blacksmith Testbox proof, reuse only an id warmed and claimed in this
40-
operator session. `blacksmith testbox list` is diagnostics only; a listed id
41-
can have a local key and still carry stale rsync state from another lane.
42-
After warmup, run `pnpm testbox:claim --id <id>`, then prefer
43-
`pnpm testbox:run --id <id> -- "<command>"` for OpenClaw gates so stale
44-
org-visible ids fail fast before syncing. Claims older than 12 hours are
45-
stale unless `OPENCLAW_TESTBOX_CLAIM_TTL_MINUTES` is explicitly set for long
46-
work.
39+
- For Blacksmith Testbox proof, use Crabbox first. `pnpm crabbox:run -- --provider
40+
blacksmith-testbox --timing-json -- <command...>` warms, claims, syncs, runs,
41+
reports, and cleans up one-shot boxes. Reuse only an id/slug created in this
42+
operator session; `blacksmith testbox list` is diagnostics only, not a shared
43+
work queue.
4744

4845
## Local Test Shortcuts
4946

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@ Docs: https://docs.openclaw.ai
3131
- Gateway/skills: add an opt-in private skill archive upload install path gated by `skills.install.allowUploadedArchives`, so trusted Gateway clients can stage and install zip-backed skills only when operators explicitly enable the code-install surface. (#74430) Thanks @samzong.
3232
- Codex app-server: enable Codex native code-mode-only for harness threads so deferred OpenClaw dynamic tools run through Codex's own searchable code execution surface instead of a PI-style wrapper.
3333
- Dependencies: refresh workspace pins and patch targets, including ACPX `@agentclientprotocol/claude-agent-acp` `0.33.1`, Codex ACP `0.14.0`, Baileys `7.0.0-rc10`, Google GenAI `2.0.1`, OpenAI `6.37.0`, AWS SDK `3.1045.0`, Kysely `0.29.0`, Tlon skill `0.3.6`, Aimock `1.19.5`, and tsdown `0.22.0`.
34+
- Dependencies: move embedded Pi packages to the `@earendil-works` namespace, refresh Twitch Twurple packages, and move `@openclaw/fs-safe` from the GitHub release pin to the published npm package.
35+
- Build: route Testbox changed-check delegation through Crabbox and remove the OpenClaw-specific Blacksmith Testbox helper scripts.
3436
- Agents/compaction: preserve scoped background exec/process session references across embedded compaction and after-turn runtime contexts without exposing sessions from unrelated scopes. Fixes #79284. (#79307) Thanks @TurboTheTurtle.
3537
- Agents/process: tell agents to inspect background sessions with `process log` before sending interactive input and to use `waitingForInput`/`stdinWritable` hints from `log`/`poll`.
3638
- CLI/onboarding: improve setup, onboarding, configure, and channel command wayfinding so terminal flows explain the next useful command instead of relying on terse setup labels.

apps/macos/Sources/OpenClaw/ModelCatalogLoader.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ enum ModelCatalogLoader {
9999
]
100100
for root in roots {
101101
let candidate = root
102-
.appendingPathComponent("node_modules/@mariozechner/pi-ai/dist/models.generated.js")
102+
.appendingPathComponent("node_modules/@earendil-works/pi-ai/dist/models.generated.js")
103103
if FileManager().isReadableFile(atPath: candidate.path) {
104104
return candidate.path
105105
}

docs/ci.md

Lines changed: 20 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -493,13 +493,23 @@ Local changed-test routing lives in `scripts/test-projects.test-support.mjs` and
493493

494494
## Testbox validation
495495

496-
Run Testbox from the repo root and prefer a fresh warmed box for broad proof. Before spending a slow gate on a box that was reused, expired, or just reported an unexpectedly large sync, run `pnpm testbox:sanity` inside the box first.
497-
498-
The sanity check fails fast when required root files such as `pnpm-lock.yaml` disappeared or when `git status --short` shows at least 200 tracked deletions. That usually means the remote sync state is not a trustworthy copy of the PR; stop that box and warm a fresh one instead of debugging the product test failure. For intentional large-deletion PRs, set `OPENCLAW_TESTBOX_ALLOW_MASS_DELETIONS=1` for that sanity run.
499-
500-
`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.
501-
502-
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.
496+
Crabbox is the repo-owned remote-box wrapper for maintainer Linux proof. Use it
497+
from the repo root when a check is too broad for a local edit loop, when CI
498+
parity matters, or when the proof needs secrets, Docker, package lanes,
499+
reusable boxes, or remote logs. The normal OpenClaw backend is
500+
`blacksmith-testbox`; owned AWS/Hetzner capacity is a fallback for Blacksmith
501+
outages, quota issues, or explicit owned-capacity testing.
502+
503+
Crabbox-backed Blacksmith runs warm, claim, sync, run, report, and clean up
504+
one-shot Testboxes. The built-in sync sanity check fails fast when required
505+
root files such as `pnpm-lock.yaml` disappear or when `git status --short`
506+
shows at least 200 tracked deletions. For intentional large-deletion PRs, set
507+
`OPENCLAW_TESTBOX_ALLOW_MASS_DELETIONS=1` for the remote command.
508+
509+
Crabbox also terminates a local Blacksmith CLI invocation that stays in the
510+
sync phase for more than five minutes without post-sync output. Set
511+
`CRABBOX_BLACKSMITH_SYNC_TIMEOUT_MS=0` to disable that guard, or use a larger
512+
millisecond value for unusually large local diffs.
503513

504514
Before a first run, check the wrapper from the repo root:
505515

@@ -569,13 +579,9 @@ pnpm crabbox:run -- --provider blacksmith-testbox --id <tbx_id> --no-sync --timi
569579
pnpm crabbox:stop -- <tbx_id>
570580
```
571581

572-
If Crabbox is the broken layer but Blacksmith itself works, use direct Blacksmith as a narrow fallback:
573-
574-
```bash
575-
blacksmith testbox warmup ci-check-testbox.yml --ref main --idle-timeout 90
576-
blacksmith testbox run --id <tbx_id> "env CI=1 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"
577-
blacksmith testbox stop --id <tbx_id>
578-
```
582+
If Crabbox is the broken layer but Blacksmith itself works, use direct
583+
Blacksmith only for diagnostics such as `list`, `status`, and cleanup. Fix the
584+
Crabbox path before treating a direct Blacksmith run as maintainer proof.
579585

580586
If `blacksmith testbox list --all` and `blacksmith testbox status` work but new
581587
warmups sit `queued` with no IP or Actions run URL after a couple of minutes,

docs/concepts/oauth.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ Claude login on the host, onboarding/configure can reuse it directly.
105105

106106
## OAuth exchange (how login works)
107107

108-
OpenClaw's interactive login flows are implemented in `@mariozechner/pi-ai` and wired into the wizards/commands.
108+
OpenClaw's interactive login flows are implemented in `@earendil-works/pi-ai` and wired into the wizards/commands.
109109

110110
### Anthropic setup-token
111111

docs/gateway/doctor.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -232,7 +232,7 @@ That stages grounded durable candidates into the short-term dreaming store while
232232

233233
</Accordion>
234234
<Accordion title="2b. OpenCode provider overrides">
235-
If you've added `models.providers.opencode`, `opencode-zen`, or `opencode-go` manually, it overrides the built-in OpenCode catalog from `@mariozechner/pi-ai`. That can force models onto the wrong API or zero out costs. Doctor warns so you can remove the override and restore per-model API routing + costs.
235+
If you've added `models.providers.opencode`, `opencode-zen`, or `opencode-go` manually, it overrides the built-in OpenCode catalog from `@earendil-works/pi-ai`. That can force models onto the wrong API or zero out costs. Doctor warns so you can remove the override and restore per-model API routing + costs.
236236
</Accordion>
237237
<Accordion title="2c. Browser migration and Chrome MCP readiness">
238238
If your browser config still points at the removed Chrome extension path, doctor normalizes it to the current host-local Chrome MCP attach model:

docs/pi.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,10 @@ OpenClaw uses the pi SDK to embed an AI coding agent into its messaging gateway
2323

2424
```json
2525
{
26-
"@mariozechner/pi-agent-core": "0.73.0",
27-
"@mariozechner/pi-ai": "0.73.0",
28-
"@mariozechner/pi-coding-agent": "0.73.0",
29-
"@mariozechner/pi-tui": "0.73.0"
26+
"@earendil-works/pi-agent-core": "0.74.0",
27+
"@earendil-works/pi-ai": "0.74.0",
28+
"@earendil-works/pi-coding-agent": "0.74.0",
29+
"@earendil-works/pi-tui": "0.74.0"
3030
}
3131
```
3232

@@ -171,7 +171,7 @@ import {
171171
DefaultResourceLoader,
172172
SessionManager,
173173
SettingsManager,
174-
} from "@mariozechner/pi-coding-agent";
174+
} from "@earendil-works/pi-coding-agent";
175175

176176
const resourceLoader = new DefaultResourceLoader({
177177
cwd: resolvedWorkspace,
@@ -518,7 +518,7 @@ OpenClaw also has a local TUI mode that uses pi-tui components directly:
518518

519519
```typescript
520520
// src/tui/tui.ts
521-
import { ... } from "@mariozechner/pi-tui";
521+
import { ... } from "@earendil-works/pi-tui";
522522
```
523523

524524
This provides the interactive terminal experience similar to pi's native mode.

docs/plugins/compatibility.md

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -69,16 +69,14 @@ not publish the inspector binary from the main `openclaw` package.
6969

7070
### Maintainer acceptance lane
7171

72-
Use Blacksmith Testbox for the installable-package acceptance lane when validating
73-
the external inspector against OpenClaw plugin packages. Run it from a clean
74-
OpenClaw checkout after the package is built:
72+
Use Crabbox-backed Blacksmith Testbox for the installable-package acceptance
73+
lane when validating the external inspector against OpenClaw plugin packages.
74+
Run it from a clean OpenClaw checkout after the package is built:
7575

7676
```sh
77-
blacksmith testbox warmup ci-check-testbox.yml --ref main --idle-timeout 90
78-
blacksmith testbox run --id <tbx_id> "pnpm install && pnpm build && npm exec --yes @openclaw/[email protected] -- ./extensions/telegram --json"
79-
blacksmith testbox run --id <tbx_id> "npm exec --yes @openclaw/[email protected] -- ./extensions/discord --json"
80-
blacksmith testbox run --id <tbx_id> "npm exec --yes @openclaw/[email protected] -- <clawhub-plugin-dir> --json"
81-
blacksmith testbox stop <tbx_id>
77+
pnpm crabbox:run -- --provider blacksmith-testbox --timing-json --shell -- "pnpm install && pnpm build && npm exec --yes @openclaw/[email protected] -- ./extensions/telegram --json"
78+
pnpm crabbox:run -- --provider blacksmith-testbox --timing-json --shell -- "npm exec --yes @openclaw/[email protected] -- ./extensions/discord --json"
79+
pnpm crabbox:run -- --provider blacksmith-testbox --timing-json --shell -- "npm exec --yes @openclaw/[email protected] -- <clawhub-plugin-dir> --json"
8280
```
8381

8482
Keep this lane opt-in for maintainers because it installs an external npm

0 commit comments

Comments
 (0)