Skip to content

v0.44.0

Choose a tag to compare

@steipete steipete released this 18 Aug 14:15
· 92 commits to main since this release
Immutable release. Only release title and notes can be modified.
v0.44.0
a12e4cf

0.44.0 - 2026-08-18

Added

  • Added credential-free crabbox providers describe discovery for canonical provider-scoped run flags and compiled defaults. Thanks @coygeek.
  • Added supported versioned go install as a CLI-only installation channel, with clean module dependency semantics, source-derived release and revision versions, and hermetic release verification. Thanks @coygeek.
  • Added an opt-in Linux/WSL2 raw_socket preflight probe that distinguishes direct, non-interactive-sudo, unavailable, and missing-interpreter states without sending packets or elevating workloads. Thanks @coygeek.
  • Added checkpoint last-use tracking and composable checkpoint prune --unused-for cleanup for inactive local records and provider artifacts.
  • Added provider-native create, verify, delete, and fork lifecycle for direct Hetzner project-snapshot checkpoints, including exact local-claim image deletion.
  • Added crabbox heartbeat so external SSH drivers can refresh owned lease idle deadlines and optionally update the idle timeout.
  • Added credential-free crabbox claims list output for deterministic, secret-safe inspection of unverified local lease claims across providers. Thanks @coygeek.
  • Added retained local-container --lease-output run-session handles with pre-sync emission and exact cleanup on output failure. Thanks @coygeek.

Fixed

  • Kept local source and worktree builds on the dev identity instead of trusting Go 1.26 pseudo-versions synthesized from VCS metadata in another checkout.
  • Prevented confirmed run --stop-after always teardown from racing workspace-owner renewal and replacing successful, evidence-backed runs with exit 7. Thanks @coygeek.
  • Retried brief GitHub API failures during browser login and kept exhausted post-exchange attempts safely retryable instead of turning the next CLI poll into a terminal failure.
  • Bounded crabbox claims list inventory reads to 1 MiB per local claim while preserving valid partial output for oversized files. Thanks @coygeek.
  • Made local-container heartbeat authorize recorded dynamic runtime scopes and durably compare-and-swap exact claim lifecycle state without recreating or overwriting changed claims. Thanks @coygeek.
  • Made AWS image deletion resume from owner-level durable snapshot claims after AMI deregistration or catalog cleanup failures, preventing stale ordinary and capability-variant records from remaining selectable.
  • Made static SSH heartbeats persist touched timestamps and explicit idle-timeout replacements across fresh CLI processes, while omitted overrides preserve the stored timeout. Thanks @coygeek.
  • Bounded Lambda MicroVM runner response-header waits without limiting uploads or streamed executions, while preserving injected HTTP clients. Thanks @SebTardif.
  • Fixed native local-container checkpoint forks to complete their recorded Docker runtime scope before claim creation, allowing immediate commands and safe normal stop while preserving exact claim validation.
  • Split fallback E2B HTTP ownership so finite lifecycle calls cannot hang indefinitely while uploads and process streams remain caller-controlled. Thanks @SebTardif.
  • Split fallback HTTP ownership for Azure Dynamic Sessions, Blaxel, Cloudflare Sandbox, Freestyle, Orgo, and SmolVM so finite control calls cannot hang while data-plane lifetimes remain caller-controlled. Thanks @SebTardif.
  • Rejected ambiguous or extra crabbox heartbeat identifiers before configuration or provider resolution, preventing malformed commands from reaching lease mutation. Thanks @coygeek.
  • Rejected native Jujutsu and other unsupported local sync sources before delegated archive providers can provision or execute a remote sandbox.
  • Accepted explicit local-container architecture assertions only when the selected Docker or Podman daemon reports a matching native architecture, without enabling emulation. Thanks @coygeek.
  • Omitted coordinator-only history commands from failure digests when run history is unavailable, while preserving direct lease recovery guidance.
  • Bypassed reusable-workspace ownership for fresh non-retained local-container runs while preserving ownership for retained and reused leases.
  • Framed workspace-owner scripts outside native Windows SSH command arguments so retained runs avoid cmd.exe limits, preserve finite stdin and nonzero exits, and clean up promptly.