Releases: openclaw/crabbox
Releases · openclaw/crabbox
v0.28.0
0.28.0 - 2026-06-11
Added
- Added local-container checkpoint forks that launch a fresh Docker lease from a committed checkpoint image while replaying and validating its recorded daemon scope. Thanks @anagnorisis2peripeteia.
- Added opt-in native Docker local-container checkpoints with immutable image identity, daemon-scope-aware verification and deletion, mounted-workspace guards, and live lifecycle coverage. Thanks @anagnorisis2peripeteia.
- Added a built-in Incus provider for local or remote Linux containers and virtual machines, including socket, TLS, and OIDC control-plane authentication, optional SSH proxy devices, retained lease reuse, and live lifecycle verification. Thanks @coygeek.
- Added Tart macOS desktop leases with native Screen Sharing, a token-gated host-side WebVNC bridge, and documented local-network exposure boundaries. Thanks @anagnorisis2peripeteia.
- Added native Azure Windows ARM64 lease support with explicit Windows ARM64 images, Cobalt ARM64 SKU inference, and
CRABBOX_AZURE_WINDOWS_ARM64_IMAGEbroker configuration for ARM64 validation. - Added persistent Apple Container 1.0 development machines through the local
apple-machineprovider. - Added local Windows sandbox execution through Microsoft Execution Containers with explicit filesystem, network, DACL-fallback, and Win32k capability controls plus an execution-backed doctor check.
Changed
- Removed the stale root OpenClaw plugin package and its npm publishing surface; Crabbox releases now version only the Worker package and Go CLI artifacts.
- Expanded release, smoke, installer, provider-contract, cleanup, and race coverage across the CLI, Worker, and provider adapters.
Fixed
- Fixed kept Tart VMs stopping when the Crabbox command that launched them exited.
- Hardened provider lifecycle ownership, claims, retained-resource metadata, rollback, cleanup timeouts, and partial-failure reporting across Apple Container, ASCII Box, AWS, Azure, Azure Dynamic Sessions, Blacksmith Testbox, Cloudflare, Daytona, Docker Sandbox, E2B, exe.dev, external providers, GCP, Hetzner, Islo, Local Container, Modal, Multipass, Namespace, Parallels, Proxmox, Railway, RunPod, Semaphore, Sprites, SSH, Tart, Tenki, Tensorlake, Upstash Box, and Weights & Biases.
- Fixed static SSH requested slugs, delegated synthetic lease IDs, provider bridge targets, service inventory pagination, Windows share validation, and provider-specific configuration validation.
- Fixed Linux and macOS developer-tool installers, AWS account and orphan guards, image-minting and WSL2 smoke cleanup, coverage isolation, live-smoke JSON handling, and release workflow tag checkout ordering.
- Fixed CI deadcode, script sandboxing, and Cloudflare cleanup race failures found during release validation.
v0.27.0
0.27.0 - 2026-06-09
Added
- Added ordered declarative external lifecycle steps with optional acquire rollback, allowing multi-command private provider setup without shell wrappers.
v0.26.1
0.26.1 - 2026-06-09
Added
- Added declarative
external.lifecyclecommand configuration for deterministic private devbox CLIs, plus coordinator-free WebVNC over SSH for direct desktop-capable providers. - Added Podman runtime compatibility for
provider: local-container, including runtime selection, provider flags on SSH commands, and Podman-safe local lease claim scopes. Thanks @sallyom. - Added
sync.include/sync.includeswhitelists for root-relative sync plans, SSH sync, native Windows sync, local Actions hydration, and archive-sync providers. Thanks @anagnorisis2peripeteia. - Added generic
kubevirtSSH leases and a versionedexternalexecutable provider so private or proprietary VM/devbox control planes can integrate through configuration without provider-specific Crabbox forks. - Added Tenki to the live provider smoke harness, including authenticated create/run coverage and a paused-session check that proves
status --waitdoes not resume the sandbox.
Changed
- Extended GitHub broker login user tokens to 180 days by default, exposed token expiry in login/doctor identity output, and made the lifetime configurable with
CRABBOX_USER_TOKEN_TTL_SECONDS. - Added optional GitHub user-token admin allowlists via
CRABBOX_GITHUB_ADMIN_OWNERSandCRABBOX_GITHUB_ADMIN_LOGINS, and removed committed capacity-admin identities from the reusable Worker config.
Fixed
- Fixed brokered provider doctor output so expired or rejected broker tokens tell maintainers to renew Crabbox login instead of misreporting AWS, Azure, GCP, or Hetzner credential failures.
- Fixed delegated run artifact collection so Blacksmith Testbox can satisfy
--require-artifactand--artifact-globbefore one-shot lease cleanup. - Fixed malformed AWS, Azure, and GCP SSH CIDR configuration to fail closed instead of falling back to broad SSH access. Thanks @coygeek.
- Fixed local-container warmup on Windows by mounting the generated bootstrap directory instead of passing the script inline to Docker. Thanks @anagnorisis2peripeteia.
- Fixed SSH-backed status waits to honor
--wait-timeoutwhile allowing Tenki readiness probes without resuming paused sessions. Thanks @aki-luxor. - Fixed Tenki JSON lease listings to expose the Crabbox lease ID instead of an unset numeric provider ID.
- Fixed brokered Azure lease creation to persist in-flight leases before VM provisioning, keep failed creates visible, and sweep orphaned Azure VMs from coordinator maintenance. Fixes #215.
- Fixed brokered lease release races so leases released while provisioning cannot be reactivated or lose cleanup retry state.
- Fixed Islo provider status, streaming exec, archive upload, share, and delete handling for the current Islo API contract. Thanks @zozo123.
- Restricted shared
useviewers from mutating lease heartbeat or Tailscale metadata, and hardened archive sync for option-like filenames while preserving sync cancellation. Thanks @zozo123.
Removed
v0.26.0
0.26.0 - 2026-06-02
Added
- Added
provider: multipassfor local Ubuntu VM SSH leases through Canonical Multipass, including cloud-init bootstrap, Crabbox sync/run lifecycle, cleanup, and cache-volume support. Thanks @jwmoss.
Changed
Fixed
- Fixed the README latest-release badge to use Badgen so GitHub release status does not depend on Shields' token pool. Thanks @zozo123.
Removed
v0.25.0
0.25.0 - 2026-06-01
Added
- Added
provider: apple-containerfor local Apple silicon macOS Linux leases, including SSH sync/run lifecycle and provider-backed cache volumes. Thanks @zozo123. - Added a repo-local Blacksmith Testbox workflow and Crabbox config so delegated Testbox validation has workflow/job defaults.
- Added
crabbox prewarmto lease and hydrate reusable test-ready boxes from configured GitHub Actions, with provider-owned handling for delegated runners such as Blacksmith Testbox. - Added broker ready pools for hydrated reusable leases, including
prewarm --pool,run --pool,pool ready/register/borrow/return/ensure, and the broker ready-pool API. - Added
crabbox doctor --all --prepare-checkto report provider matrix readiness, resolved test machine types, and hydration workflow/job setup without creating leases. - Added
crabbox webvnc daemon listto show alive and stale local WebVNC helper daemons after agent runs.
Changed
- Raised the coordinator fleet-wide and org-wide reserved monthly caps while keeping per-owner and active lease limits in place, so trusted operators are not blocked by stale reserved-cost accounting.
- Tuned XFCE/WebVNC desktops for smoother interactive use with low-latency
x11vnc, 60fps WayVNC, and low-compression noVNC defaults. - Updated Go and Worker dependencies, including Wrangler, Vitest, oxlint, Cloudflare Workers types, AWS SDK, Daytona SDK, Google API modules, OpenTelemetry, and the Go toolchain.
Fixed
- Fixed GNOME desktop leases to follow the same persisted light/dark theme selection as XFCE, including GTK settings, panel restart, and browser color-scheme flags.
- Fixed GNOME theme toggles to restart the desktop panel inside the active session so the top and bottom bars stay visible.
- Fixed WebVNC GNOME theme switching on existing leases without the dynamic helper, including black GNOME Terminal profiles for dark mode.
- Fixed GNOME WebVNC terminal title bars to follow light/dark theme changes by updating labwc window decorations.
- Fixed GNOME WebVNC terminal menubars to follow light/dark theme changes and added a generated desktop background for GNOME sessions.
- Fixed XFCE desktop leases to drag and resize windows opaquely instead of using the wireframe destination box, with full move/resize opacity and XFWM compositing disabled for the Xvfb/VNC path.
- Fixed Apple Container bootstrap on hosts whose runtime does not inherit DNS by passing detected host resolvers while preserving explicit
--apple-container-extra-run-args --dnsoverrides. - Fixed Apple Container runs to fail as soon as the container exits during SSH bootstrap and include a short container log tail instead of waiting for the full SSH timeout.
- Classified Blacksmith Testbox cleanup, sync-marker, cancelled Actions, and post-ready stall failures as retryable infra stages instead of generic unknown failures.
- Fixed Azure VM provisioning so slow creates time out quickly, continue through SKU/region fallback, and use a Worker Azure region list separate from AWS regions.
- Fixed local Actions hydration after warmup SSH port fallback so prewarmed SSH-backed boxes reuse the resolved reachable endpoint instead of retrying the configured port.
Removed
- Removed the stale root OpenClaw plugin package and its npm publish surface.
v0.24.0
0.24.0 - 2026-05-31
Added
- Added provider-backed cache volumes for rebuildable dependency caches, including
cache.volumes,CRABBOX_CACHE_VOLUMES, repeatable--cache-volume [name=]key:path,crabbox cache volumes, Blacksmith Testbox sticky-disk forwarding, Local Container Docker volume mounts, and claim-backed required-volume checks for reused leases.
Fixed
v0.23.0
0.23.0 - 2026-05-30
Added
- Added
provider: ascii-boxfor ASCII Box Ubuntu sandbox SSH leases, using the documentedbox --jsonCLI for create/list/status/stop/delete and standard Crabbox SSH sync/run. Thanks @zozo123. - Added Azure
--azure-os-disk ephemeral-preview/azure.osDisk: ephemeral-previewfor opt-in ephemeral OS disk full caching through Azure Compute API2025-04-01. Thanks @jwmoss. - Added configurable capacity-admin owner caps for coordinators that need elevated active lease limits for trusted operators.
Changed
- Raised the default coordinator monthly budget caps so configured capacity pools are less likely to reject trusted brokered leases before provider quota is reached.
Fixed
- Fixed brokered Azure Linux lease creation so a stalled coordinator request times out with a concrete cleanup/retry hint instead of sitting silently in the leasing phase for the full coordinator HTTP timeout.
- Fixed brokered Azure Spot VM fallback so
on-demand-after-*windows bound VM create waits, on-demand retries use separate VM names, and timed-out Spot cleanup is retried from Fleet maintenance.
Verification
- CI: https://github.com/openclaw/crabbox/actions/runs/26694677804 passed on
e35b7a78d5bb9674de7108bbc4c175f216783725. - Release workflow: https://github.com/openclaw/crabbox/actions/runs/26694904528 passed and verified the Homebrew formula.
- NPM: https://www.npmjs.com/package/@openclaw/crabbox-plugin/v/0.23.0 published with tarball https://registry.npmjs.org/@openclaw/crabbox-plugin/-/crabbox-plugin-0.23.0.tgz and integrity
sha512-I9aAuYvm/Mk9Da2PnvLiwNefpzq4C/siiIUdmexHtBdNYfco6ZicKlMVZ1piDlKwAA5EZdm7ZFG1oi9eo3WkhQ==. - Homebrew:
openclaw/homebrew-tapformula is at0.23.0with release asset URLs for v0.23.0. - Live smoke: AWS coordinator-backed warmup/status/inspect/run/events/logs/attach/stop passed for lease
cbx_ad0c7ea292b2, slugquick-krill, runrun_ffdbf0ae37f0.
v0.22.1
0.22.1 - 2026-05-29
Added
- Added
--arch arm64/architecture: arm64for Linux ARM leases on Azure and AWS, including Azure Dpsv6/Dpdsv6 and AWS Graviton class fallback plus matching Ubuntu ARM64 image resolution.
Fixed
- Fixed brokered lease creation diagnostics so long coordinator requests print progress, timed-out create requests do not retry non-idempotent POSTs through curl, and Azure ARM errors preserve the useful conflict message.
v0.22.0
0.22.0 - 2026-05-29
Added
- Added
provider: azure-dynamic-sessionsfor delegated Linux runs through Microsoft Azure Container Apps custom container Dynamic Sessions, including a Crabbox runner image, archive sync, streaming commands, local claims, status/list/stop, and provider docs. Thanks @zozo123. - Added
crabbox pondpeer discovery, bridge, and SSH-mesh support for multi-lease networking, including bridge adapters for Cloudflare, E2B, Islo, Modal, Railway, and Tensorlake. - Added Azure backend routing so
provider: azurecan selectazure.backend: dynamic-sessionsor--azure-backend dynamic-sessionswhile still reporting the canonicalazure-dynamic-sessionsprovider. - Added Islo delegated run session handles so
crabbox run --provider islo --keep --lease-output <file>returns stable lease metadata and cleanup commands for orchestrators. Thanks @zozo123. - Added
crabbox init --detectto scan common Go, Node, Rust, and Makefile project markers and generate a repo-localjobs.detectedremote check plus matching preflight tools. Thanks @zozo123.
Fixed
- Fixed Azure VM provisioning to automatically use region-scoped shared VNet/NSG names when a Crabbox-managed base network already exists in another Azure region.
- Fixed brokered Azure regional fallback so region-scoped shared network names are computed per lease instead of mutating the Worker client's configured vnet/NSG names.
- Hardened Azure Dynamic Sessions endpoint validation, claim boundaries, token destinations, missing-response handling, lifecycle edges, shell string preservation, and runner image behavior.
- Fixed Islo run session handles to preserve resolved and claimed slugs, keep explicit lease IDs authoritative, return handles after lease creation, and quote cleanup commands safely.
- Fixed
crabbox stopto accept--id <lease>like every other lease command, and updated the stop hint thatcrabbox runprints so it can be pasted back verbatim. Thanks @edihasaj. - Fixed lease commands (
run,status,stop,ssh,inspect,screenshot,vnc,webvnc,actions,artifacts,checkpoint,egress) to auto-route--id static_<slug>ids to--provider sshand restore the original static host from the local lease claim, so static SSH leases no longer require repeating routing flags aftercrabbox warmup. - Fixed
crabbox init --detectto run nested detected package checks from the package directory and validate generated preflight tools. - Fixed Blacksmith Testbox workflow fallback selection so generic Actions hydration workflows are not mistaken for Testbox workflows, and fixed native Windows wrapper commands so PowerShell-based Node bootstraps can run before JavaScript runtime preflight checks.
- Fixed brokered AWS provisioning to compact stale Crabbox SSH ingress after EC2 reports the security group rule limit, then retry the current source rule before failing.
- Fixed coordinator lease cleanup so expired AWS leases whose EC2 instance is already gone still clean provider keys before closing.
- Fixed AWS EC2 Mac host cleanup and selection so stale pending hosts are released by the orphan sweep and hosts with no reported launch capacity are skipped.
- Fixed Worker AWS Linux user-data compression and hardened command/security boundaries found by CodeQL.
- Fixed provider documentation tables to match the registered provider capabilities for Azure, GCP, and Railway.
v0.21.0
0.21.0 - 2026-05-27
Added
- Added
--desktop-env gnomefor a GNOME-apps desktop profile on labwc/WayVNC with GNOME Panel taskbars and Xwayland-backed app launches. - Added native Windows support for GitHub-runner Actions hydration so workflows can prepare Windows leases before Crabbox attaches to the hydrated workspace.
- Added a portable
--os/oslease selector with Ubuntu 26.04 as the preferred Linux image where provider catalogs support it, while preserving explicit provider image overrides. - Added Azure
capacity.regionsfallback with region-scoped managed network names and Azure capacity hints, matching the AWS capacity-routing model. - Added a repo-local Crabbox hydrate workflow and documented Azure as the preferred Windows/WSL2 provider when Azure quota or credits are available.
- Added
crabbox run --lease-output <file>for reusable delegated-run session JSON, starting with Blacksmith Testbox. Thanks @RomneyDa.
Fixed
- Fixed failed-run summaries so application output mentioning provider auth no longer looks like a provider/auth blocker, shell
&&command chains explain short-circuit behavior, observed phases identify the likely failed phase, and opt-in automatic JUnit discovery can add structured test failures. - Fixed Azure Spot VM provisioning to send
billingProfile.maxPrice: -1explicitly in both direct and brokered mode, keeping Crabbox leases on Spot pricing without price-threshold evictions. - Fixed coordinator-backed lease creation to wait long enough for slow cloud bootstraps such as Azure Windows/WSL2 before timing out locally.
- Fixed Azure failed-candidate cleanup retries to emit Worker-side progress logs while Azure waits out NIC and public IP dependency locks.
- Fixed brokered Azure region ordering so an explicit request or
CRABBOX_AZURE_LOCATIONis attempted before the coordinator default. - Fixed native Windows
--fresh-prruns so PR checkout, local patch application, and post-bootstrap SSH port changes work over PowerShell. - Fixed native Windows Actions env handoff so
crabbox runcan consume bash-style hydrate env files and reuse hydrated Node/pnpm paths. - Fixed AWS coordinator EC2 polling to tolerate transient
InvalidInstanceID.NotFoundafter instance creation and to report parsed AWS XML errors. - Fixed AWS coordinator provisioning retries so wrapped opaque
RunInstanceserrors are retried instead of failing immediately. - Fixed Daytona provider sandbox inventory to use Daytona's cursor-based listing API.
- Removed OpenClaw-specific hosted broker defaults and documentation from the generic Crabbox broker login flow.