Skip to content

Releases: boxlite-ai/boxlite

v0.9.7

Choose a tag to compare

@G4614 G4614 released this 01 Jul 12:24
8803834

What's Changed

  • fix(guest): exec timeout watcher must SIGKILL, not SIGALRM by GHSA-xjhv-pp2r-6f82 by @G4614 in #543
  • chore(deps): bump github.com/go-git/go-git/v5 from 5.19.0 to 5.19.1 in /apps/daemon in the go_modules group across 1 directory by @dependabot[bot] in #553
  • feat(auth): REST identity via BoxliteRuntime::auth() handle by @DorianZheng in #554
  • chore(make): workspace-wide apps targets + drop yarn-lock-sync hook by @DorianZheng in #556
  • feat(serve): optional exact-key auth for serve + reference-server by @DorianZheng in #557
  • fix(test-python): use shared_runtime fixture to avoid BOXLITE_HOME flock collision by @G4614 in #560
  • test(security): Node + Go regression parity for GHSA-g6ww + GHSA-f396 by @DorianZheng in #558
  • refactor(logging): executable-owned subscriber + layered CLI sink by @DorianZheng in #562
  • feat(api-key): Stripe-style {prefix}{class}{base62(32)}{crc6} format by @DorianZheng in #559
  • chore(infra): track .env.example for stack setup by @DorianZheng in #566
  • feat(auth): URL prefix authoritative + OIDC device flow by @DorianZheng in #581
  • chore(workspaces): track empty CLAUDE.md placeholders across the tree by @DorianZheng in #583
  • chore(deps): bump rusqlite 0.37 -> 0.39 by @DorianZheng in #582
  • chore(deps): bump the npm_and_yarn group across 2 directories with 2 updates by @dependabot[bot] in #569
  • chore(deps): bump github.com/boxlite-ai/boxlite/sdks/go from 0.8.2 to 0.9.0 in /apps/runner in the go_modules group across 1 directory by @dependabot[bot] in #570
  • fix(quality): lint:python tomllib check works on Python 3.10 by @G4614 in #574
  • fix(security): paired redaction — stop CA key/secret leaks via trace! + Debug by @G4614 in #575
  • fix(auth): treat empty BOXLITE_API_KEY as unset in auth status by @G4614 in #577
  • ci(e2e): auto-evict caches at >=80% root use instead of hard-fail by @DorianZheng in #584
  • feat(rest): typed error→HTTP mapping with snake codes + request-id by @DorianZheng in #585
  • fix(recovery): PID-fingerprint identity + crash-aware attach pipeline by @DorianZheng in #590
  • tiny(test-auth): drop stale period in status "Not logged in" assertion by @G4614 in #598
  • chore(claude): add CLAUDE.md preflight hook + auditor subagent by @DorianZheng in #599
  • docs: correct BoxOptions::detach contract + restore two-side test rule by @DorianZheng in #601
  • fix(spawn): set session leader for detached, own pgroup for non-detached by @DorianZheng in #602
  • chore(claude): add PR-review acknowledgment PreToolUse hook by @DorianZheng in #603
  • test(test-utils): PerTestBoxHome::Drop fails loudly if a shim is still alive by @DorianZheng in #604
  • fix(test): add missing .clone() in image_registries test after #604 by @G4614 in #606
  • fix(images): defer dir chmod across layers to fix overwrite EACCES by @DorianZheng in #607
  • fix(setup): install cmake for C SDK test harness by @DorianZheng in #609
  • fix(make): propagate test failures instead of masking via POSIX ; chaining (#550) by @G4614 in #587
  • test(health_check): explicit stop() for the healthy-box test by @G4614 in #615
  • fix(runner): roll back SignaledHUP/TERM when SDK signal delivery fails by @G4614 in #600
  • fix(libcontainer): bump to youki rev — InitReady race + per-exec mount leak by @G4614 in #611
  • [urgent] fix(guest): declare terminal=true for TTY execs (libcontainer 0.6 check_terminal) follow-up #611 by @G4614 in #625
  • fix(test:apps): inject boxlite_dev tag via GOFLAGS for apps Go tests (#579) by @G4614 in #589
  • fix(net): surface gvproxy bind errors through FFI by @G4614 in #612
  • fix(disk,runtime): cross-filesystem-safe clone/snapshot moves (EXDEV fallback) by @G4614 in #624
  • fix(cli): preserve profile path_prefix when BOXLITE_API_KEY is set by @G4614 in #629
  • fix(api): source /v1/me expires_at from ApiKey.expiresAt (P1-2) by @lilongen in #649
  • Configure CLA Assistant by @DorianZheng in #650
  • chore(deps-dev): bump the npm_and_yarn group across 2 directories with 1 update by @dependabot[bot] in #644
  • feat: upgrade MiniMax default model to M3 by @octo-patch in #643
  • docs: add communication rules to CLAUDE.md by @DorianZheng in #653
  • infra: configurable pgAdmin exposure (secure default) + tiered .env.example by @DorianZheng in #661
  • feat(infra): RUNNERS-count multi-runner provisioning by @DorianZheng in #664
  • fix qcow2 backing and container status checks by @GatewayJ in #525
  • fix(cli): stop box before hard-exit on non-zero run exit code by @G4614 in #622
  • test(sdk-typescript): pass jest target when no test files exist by @G4614 in #617
  • test-stress(disk-guest): box rootfs is a bounded, isolated disk that survives a fill by @G4614 in #623
  • test(cli): box lifecycle journey suite — surfaces logs/stdout gap by @G4614 in #630
  • fix(cli): read stdin on a dedicated OS thread so TTY exec exits without a stray ENTER by @G4614 in #626
  • fix(api): anchor OIDC-created user's Personal org to the default region by @lilongen in #668
  • fix(api): reject undersized box resources at the create boundary by @lilongen in #662
  • fix(runner): pull snapshot layers for the host arch, not hardcoded amd64 by @lilongen in #671
  • ci: prep test/lint workflows for a merge queue by @DorianZheng in #677
  • ci: run test/lint on every PR so required conclusion checks always report by @DorianZheng in #679
  • test(e2e): SDK→API→Runner→VM regression suite by @G4614 in #678
  • fix(disk): build ext4 rootfs from trees with unreadable (0000) files by @DorianZheng in #697
  • chore(codeowners): map subsystem ownership to maintainers/builder teams by @DorianZheng in #704
  • docs(readme): add BoxLite logo banner by @law-chain-hot in #707
  • test(e2e): add error-mapping, quota, runner-concurrency cases (xfails pin known bugs) by @G4614 in #683
  • fix(rest): extract uploaded tar before CopyInto in runner file upload by @G4614 in #688
  • fix(rest): copy_out single-file mode writes at host_dst, not inside it by @G4614 in #692
  • ci(codeql): switch to advanced setup so fork PRs are scanned by @DorianZheng in #708
  • refactor: rename Sandbox -> Box (Part 1: apps/api epicenter) by @law-chain-hot in #706
  • fix(apps): repair ESLint flat config lint by @law-chain-hot in #713
  • fix(go-sdk): fold stream drain into Execution.Wait (os/exec io.Writer case) by @G4614 in #563
  • chore(apps): restore Daytona API-client regen machinery + regenerate clients by @DorianZheng in #716
  • chore(deps): bump the npm_and_yarn group across 1 directory with 2 updates by @dependabot[bot] in #717
  • docs(cli,daemon): regenerate cobra docs and toolbox swagger after rename by @DorianZheng in #718
  • fix(api,e2e): finish Sandbox → Box rename — 3 schema gaps + fixture column names by @G4614 in #720
  • chore(apps): rename analytics-api-client Sandbox -> Box via in-repo swagger spec by @DorianZheng in #721
  • test(e2e): add cli-detach-recovery, exec-attach, volume-readonly cases by @G4614 in https://gi...
Read more

v0.9.5

Choose a tag to compare

@DorianZheng DorianZheng released this 16 May 13:14
7f8df26

Security

If you are still running boxlite < 0.9.0, upgrade. Two Critical vulnerabilities were fixed in 0.9.0:

Surfacing this here is intended for users not covered by Dependabot — curl | sh installer, prebuilt C SDK / native library, vendored source, cargo audit (uses RustSec, not the GitHub Advisory Database). See SECURITY.md.

What's Changed

  • ci(e2e): rescue logs, disk precheck, attempt-namespaced artifacts by @DorianZheng in #508
  • feat(release): sh.boxlite.ai Cloudflare Worker for installer by @DorianZheng in #510
  • docs(cli): add CLI reference + README CLI Quick Start by @DorianZheng in #511
  • Fix mobile credential row overflow by @DorianZheng in #513
  • chore(deps): bump astro from 6.1.6 to 6.1.10 in /apps in the npm_and_yarn group across 1 directory by @dependabot[bot] in #514
  • fix(runner): pong-based liveness for WebSocket attach sessions by @DorianZheng in #516
  • chore(deps): add lint:yarn-lock make target + pre-commit hook by @DorianZheng in #517
  • fix(dashboard): constrain dialog grid/flex children so long values stay inside on mobile by @DorianZheng in #518
  • feat(dashboard): mobile-first sandbox terminal and VNC by @DorianZheng in #521
  • fix(runner): SSH gateway uses BoxLite exec (ssh -p 2222 back online) by @DorianZheng in #524
  • fix(dashboard): RP-initiated logout fallback for non-compliant IdPs by @DorianZheng in #526
  • fix(runtime): preserve box record on init failure as Failed state by @DorianZheng in #520
  • feat(api): single bearer auth, /v1/me, RFC 8628 device flow endpoints by @DorianZheng in #527
  • feat(api): drop OAuth device-flow endpoints + schemas from spec by @DorianZheng in #531
  • fix: move test cache under workspace target by @uran0sH in #533
  • feat(auth): bearer auth + RFC 8628 device flow (SDK + CLI + server stubs) by @DorianZheng in #532
  • test: keep-going matrix via FAIL_FAST + FILTER for every suite by @DorianZheng in #534
  • refactor(node): move rest bag adaptation into the napi binding by @DorianZheng in #536
  • fix(runtime): prune embedded cache by each dir's own build profile by @DorianZheng in #537
  • chore(sdk): bump SDK patch version 0.9.4 -> 0.9.5 by @DorianZheng in #538
  • test(security): GHSA-g6ww-w5j2-r7x3 Python regression + advisory note by @DorianZheng in #539
  • test(security): GHSA-f396-4rp4-7v2j Python regression + advisory note by @DorianZheng in #540

Full Changelog: v0.9.4...v0.9.5

v0.9.4

Choose a tag to compare

@DorianZheng DorianZheng released this 12 May 11:40
45e211f

What's Changed

  • Separate shim package from runtime embedding by @DorianZheng in #494
  • feat(c-ffi): post-and-drain async callback C API (phase 2) by @DorianZheng in #495
  • rest: treat BoxID as opaque server-issued identifier by @DorianZheng in #498
  • ci(e2e): make runner instance persistence non-fatal by @DorianZheng in #499
  • ci(e2e): expand subnet pool to all AZs in the VPC by @DorianZheng in #500
  • ci(e2e): move make setup from user-data to a job step by @DorianZheng in #501
  • chore(deps): bump github.com/go-git/go-git/v5 from 5.18.0 to 5.19.0 in /apps/daemon in the go_modules group across 1 directory by @dependabot[bot] in #503
  • chore(deps): bump @opentelemetry/sdk-node from 0.207.0 to 0.217.0 in /apps in the npm_and_yarn group across 1 directory by @dependabot[bot] in #504
  • feat(exec): runner attach controller + env/workdir/timeout plumbing by @DorianZheng in #505
  • feat(release): curl|sh installer + SHA256SUMS + build provenance by @DorianZheng in #506
  • chore(release): bump SDK patch versions to 0.9.4 by @DorianZheng in #509

Full Changelog: v0.9.3...v0.9.4

v0.9.3

Choose a tag to compare

@DorianZheng DorianZheng released this 05 May 15:59
8884e07

What's Changed

  • chore(deps): bump github.com/distribution/distribution/v3 from 3.1.0 to 3.1.1 in /apps/snapshot-manager in the go_modules group across 1 directory by @dependabot[bot] in #474
  • fix: plumb sandbox disk size and correct CPU/memory unit conversions by @DorianZheng in #475
  • ci(e2e): add VM integration tests on ephemeral AWS EC2 runner by @DorianZheng in #477
  • ci(e2e): improve error reporting for PAT validation by @DorianZheng in #478
  • ci(e2e): fix app verification, use c8i.xlarge for vCPU quota by @DorianZheng in #479
  • ci(e2e): enable nested virtualization for KVM support by @DorianZheng in #480
  • ci(e2e): fix user-data script (heredoc indentation + kvm group) by @DorianZheng in #481
  • ci(e2e): fix runner version (deprecated) and update to Ubuntu 24.04 by @DorianZheng in #482
  • ci(e2e): simplify to make setup + make test:integration by @DorianZheng in #483
  • ci(e2e): install make on bare Ubuntu AMI by @DorianZheng in #484
  • ci(e2e): fix HOME not set for root runner (cargo env) by @DorianZheng in #485
  • ci(e2e): add Go to PATH for libgvproxy-sys build by @DorianZheng in #486
  • ci(e2e): switch to persistent stop/start model by @DorianZheng in #487
  • ci(e2e): fix heredoc indentation in user-data script by @DorianZheng in #489
  • docs: install requests in Python CodeBox quickstart by @zxyasfas in #490
  • ci(e2e): add multi-AZ fallback for EC2 instance creation by @DorianZheng in #491
  • chore: bump SDK versions to 0.9.3 by @DorianZheng in #493

New Contributors

Full Changelog: v0.9.2...v0.9.3

v0.9.2

Choose a tag to compare

@DorianZheng DorianZheng released this 04 May 18:05
fdd1754

What's Changed

Full Changelog: v0.9.1...v0.9.2

v0.9.1

Choose a tag to compare

@DorianZheng DorianZheng released this 04 May 00:40
d4dbc4b

What's Changed

Full Changelog: v0.9.0...v0.9.1

v0.9.0

Choose a tag to compare

@DorianZheng DorianZheng released this 03 May 12:44
6907945

Security

This release fixes two Critical vulnerabilities affecting all SDKs at versions < 0.9.0. Upgrade to 0.9.0 or later — there is no workaround.

Advisory CVE Issue
GHSA-g6ww-w5j2-r7x3 CVE-2026-46695 read-only volume remount bypass
GHSA-f396-4rp4-7v2j CVE-2026-46703 OCI layer symlink escape

Dependabot covers consumers using pip boxlite, npm @boxlite-ai/boxlite, go github.com/boxlite-ai/boxlite/sdks/go, cargo boxlite, or cargo boxlite-cli. If you install via the curl | sh installer, the prebuilt C SDK / native library, vendored source, or rely on cargo audit (which reads RustSec, separate from the GitHub Advisory Database), you will not receive a Dependabot alert — please confirm you are on 0.9.0+. See SECURITY.md for the full table.

What's Changed

  • Add allow_net and secrets support across SDKs by @DorianZheng in #426
  • feat(vmm): add HypervisorProbe for post-failure VM diagnostics by @DorianZheng in #430
  • fix(build): remove stale guest dir reference in clean script by @DorianZheng in #431
  • Add built-in host alias for box-to-host access by @DorianZheng in #441
  • Expose runtime image handles across SDKs safely by @DorianZheng in #433
  • fix(lint): replace sort_by with sort_by_key for clippy compliance by @uran0sH in #442
  • feat(images): harden OCI image pull security by @DorianZheng in #429
  • feat(sdk/go): local OCI bundle via WithRootfsPath by @GatewayJ in #443
  • [codex] Auto-use sudo in Linux setup scripts by @DorianZheng in #444
  • docs: add SECURITY.md with private vulnerability reporting process by @DorianZheng in #445
  • refactor(images): split OCI extractor and fix containment bugs by @DorianZheng in #446
  • chore(deps): bump rand from 0.9.2 to 0.9.3 in the cargo group across 1 directory by @dependabot[bot] in #447
  • chore(deps): bump golang.org/x/crypto from 0.43.0 to 0.45.0 in /src/deps/libgvproxy-sys/gvproxy-bridge in the go_modules group across 1 directory by @dependabot[bot] in #448
  • fix(security): enforce read-only virtiofs at hypervisor level by @DorianZheng in #454
  • Drop JSON FFI boundary APIs by @DorianZheng in #456
  • Add interactive execution support to C and Go SDKs by @DorianZheng in #458
  • Add structured image registry configuration by @DorianZheng in #459
  • refactor(images): adopt resolve-once pattern, port upstream security tests by @DorianZheng in #461
  • refactor: replace Rust server with apps workspace by @DorianZheng in #460
  • chore: align app workspace with BoxLite by @DorianZheng in #464
  • chore(deps): bump the npm_and_yarn group across 1 directory with 5 updates by @dependabot[bot] in #462
  • chore(deps): bump the go_modules group across 8 directories with 6 updates by @dependabot[bot] in #463
  • chore(setup): install Node 22 LTS via unified setup_nodejs by @DorianZheng in #466
  • refactor(runner): build runner binary in CI, deploy from GitHub Releases by @DorianZheng in #467
  • chore(deps): bump the go_modules group across 3 directories with 2 updates by @dependabot[bot] in #465

New Contributors

Full Changelog: v0.8.2...v0.9.0

v0.8.2

Choose a tag to compare

@DorianZheng DorianZheng released this 02 Apr 10:38
da71624

What's Changed

  • feat(serve): complete REST API server and add --url flag by @DorianZheng in #384
  • docs(readme): add REST API quick start section by @DorianZheng in #385
  • refactor(go): replace go generate with setup tool and flatten CGO structure by @DorianZheng in #386
  • fix(go): correct README example to match actual SDK API by @DorianZheng in #387
  • fix(snapshot): harden snapshot subsystem with chain-walk safety and crash recovery by @DorianZheng in #390
  • feat(server): add distributed server with coordinator and worker roles by @DorianZheng in #391
  • fix(server): keep exec in HashMap during output streaming for TTY sessions by @DorianZheng in #392
  • feat(server): align utoipa OpenAPI spec with rest-sandbox-open-api.yaml by @DorianZheng in #394
  • feat(server): implement all OpenAPI endpoints end-to-end by @DorianZheng in #396
  • feat: upgrade MiniMax default model to M2.7 by @octo-patch in #393
  • feat(server): implement WebSocket TTY for interactive terminal sessions by @DorianZheng in #397
  • feat(net): add SocketShortener for Unix socket sun_path limit by @DorianZheng in #398
  • feat(guest): add auto-idmap for transparent volume UID remapping by @DorianZheng in #399
  • feat(ci): add Linux ARM64 to CI platform matrix by @DorianZheng in #400
  • fix(ci): use dynamic manylinux arch in warm-caches workflow by @DorianZheng in #402
  • feat(audit): add audit logging for box operations by @DorianZheng in #403
  • feat(net): add network allowlist with DNS sinkhole filtering by @DorianZheng in #410
  • feat(net): add TCP-level allowlist filtering with SNI/Host inspection by @DorianZheng in #411
  • feat(net): add secret substitution via TLS MITM proxy by @DorianZheng in #412
  • feat(vmm): add KVM health check to detect broken nested virtualization by @DorianZheng in #417
  • feat(jailer): add Landlock LSM sandbox with composable Sandbox API by @DorianZheng in #416
  • chore: bump all SDK versions to 0.8.0 by @DorianZheng in #418
  • refactor: reorganize workspace into src/ layout by @DorianZheng in #419
  • feat(server): add coordinator admin REST API and gRPC registration by @DorianZheng in #420
  • fix(vmm): fix KVM smoke test for nested virtualization by @DorianZheng in #421
  • chore: bump all SDK versions to 0.8.1 by @DorianZheng in #422
  • fix(build): fix workspace root detection in build.rs by @DorianZheng in #423

Full Changelog: v0.7.5...v0.8.2

v0.7.5

Choose a tag to compare

@DorianZheng DorianZheng released this 14 Mar 04:15
686832d

What's Changed

Full Changelog: v0.7.4...v0.7.5

v0.7.4

Choose a tag to compare

@DorianZheng DorianZheng released this 14 Mar 00:47
057063b

What's Changed

  • fix: prevent TLS panic in shutdown_on_exit atexit handler by @DorianZheng in #377
  • feat(publish): publish boxlite-cli via cargo install and cargo binstall by @DorianZheng in #378
  • chore: bump SDK patch versions by @DorianZheng in #379
  • feat(publish): add build-c and build-go workflows for Go SDK publishing by @DorianZheng in #380

Full Changelog: v0.7.3...v0.7.4