v0.3.0

superradcompany/microsandboxv0.3.0Mar 20, 2026by github-actions[bot]

AI Summary

v0.3.0 is a major release of microsandbox that consolidates the workspace into a single crate, introduces a comprehensive networking stack (msbnet), multiple filesystem backends (passthrough, overlay, memfs, dualfs), Go SDK support, and database infrastructure with migrations. This release also adds a guest agent, runtime CLI subcommands, and OCI image pulling support.

Key Highlights

  • Major workspace consolidation - refactored into single microsandbox crate under crates/ directory
  • Added msbnet networking stack with policy, DNS, published ports, and TLS interception
  • Implemented multiple filesystem backends: passthrough, overlay with copy-on-write, memfs, and dualfs
  • Introduced Go SDK with initial implementation and module path fixes
  • Added database foundation with migrations, entities, and connection pooling

Breaking Changes

  • Consolidated workspace into single microsandbox crate (PR #377)
  • Moved workspace crates under crates/ directory (PR #381)

New Features

  • Go SDK initial implementation
  • CLI with --host support and user-facing sandbox lifecycle management commands
  • Guest agent (agentd) with protocol and build pipeline
  • Runtime infrastructure with CLI subcommands
  • OCI image pulling with OverlayFs rootfs support
  • Disk image rootfs support (qcow2, raw, vmdk)
  • msbnet networking stack with policy, DNS, published ports, and TLS interception
  • Multiple filesystem backends: passthrough, overlay, memfs, proxyfs, dualfs
  • Database foundation with migrations, entities, and pool
  • Type-safe byte-size units for SDK APIs
  • ImageSource for smart rootfs detection
  • Tmpfs mount support via MSB_TMPFS env var
  • Parallelized layer extraction pipeline
  • Overlay filesystem with read-only mode and sidecar index for layer acceleration
  • Security fixes for RUSTSEC-2026-0007 and RUSTSEC-2026-0009

Full Release Notes

## What's Changed
* fix: downgrade MCP protocol version an remove unused deps by @appcypher in https://github.com/zerocore-ai/microsandbox/pull/244
* feat(cli): add --host support by @Sun-ZhenXing in https://github.com/zerocore-ai/microsandbox/pull/253
* chore(release): bump version to 0.2.6 by @appcypher in https://github.com/zerocore-ai/microsandbox/pull/254
* Use stable std::io::IsTerminal by @xosnrdev in https://github.com/zerocore-ai/microsandbox/pull/269
* feat: add vet ci integration for OSS security auditing  by @KunalSin9h in https://github.com/zerocore-ai/microsandbox/pull/261
* fix: wrong policy file path in ci file for vet by @KunalSin9h in https://github.com/zerocore-ai/microsandbox/pull/271
* Fix Rust examples in sandboxes documentation by @semihbkgr in https://github.com/zerocore-ai/microsandbox/pull/274
* Feature Request: Go SDK - Initial Implementation by @Keithagy in https://github.com/zerocore-ai/microsandbox/pull/270
* feat: add lto for release builds by @OAyomide in https://github.com/zerocore-ai/microsandbox/pull/287
* docs: update API keys documentation to reflect NodeSandbox usage by @Eronmmer in https://github.com/zerocore-ai/microsandbox/pull/294
* refactor: make LTO opt-in and improve Makefile build configuration by @appcypher in https://github.com/zerocore-ai/microsandbox/pull/295
* refactor: remove groups functionality and simplify flag validation by @appcypher in https://github.com/zerocore-ai/microsandbox/pull/299
* fix: add directory file type to root path xattr to prevent kernel panic by @appcypher in https://github.com/zerocore-ai/microsandbox/pull/300
* refactor: change build steps from HashMap to Vec and fix registry URL by @appcypher in https://github.com/zerocore-ai/microsandbox/pull/305
* feat: implement stat shadowing for container filesystem extraction by @appcypher in https://github.com/zerocore-ai/microsandbox/pull/303
* feat: add support for github container registry by @OAyomide in https://github.com/zerocore-ai/microsandbox/pull/310
* chore(docs): simplify readme by @toksdotdev in https://github.com/zerocore-ai/microsandbox/pull/327
* chore(docs): add uninstall instruction to readme by @toksdotdev in https://github.com/zerocore-ai/microsandbox/pull/330
* chore(docs): add experimental notice to readme by @toksdotdev in https://github.com/zerocore-ai/microsandbox/pull/334
* Avoid allocating in `pre_exec` closure by @purplesyringa in https://github.com/zerocore-ai/microsandbox/pull/337
* feat(registry): switch registry implementation to external crate by @toksdotdev in https://github.com/zerocore-ai/microsandbox/pull/343
* fix: correct Go module path and add default Request ID generation in SDK by @calebax in https://github.com/zerocore-ai/microsandbox/pull/339
* chore(sdk): remove stale sdks by @toksdotdev in https://github.com/zerocore-ai/microsandbox/pull/346
* doc-test: Fixed no_run doc code examples by @ChrisAB in https://github.com/zerocore-ai/microsandbox/pull/348
* chore(readme): update install instruction by @toksdotdev in https://github.com/zerocore-ai/microsandbox/pull/352
* fix: forward_rpc_to_portal wait by @phact in https://github.com/zerocore-ai/microsandbox/pull/355
* chore: re-introduce ci/cd pipeline by @toksdotdev in https://github.com/zerocore-ai/microsandbox/pull/358
* feat: setup ci/cd for docs and download workers by @toksdotdev in https://github.com/zerocore-ai/microsandbox/pull/359
* fix: improve error reporting in installer script by @appcypher in https://github.com/zerocore-ai/microsandbox/pull/308
* feat(image): handle layers with missing parent directory for files by @toksdotdev in https://github.com/zerocore-ai/microsandbox/pull/351
* chore(config): deserialise null fields to default by @toksdotdev in https://github.com/zerocore-ai/microsandbox/pull/373
* feat: optimize health check by @fatelei in https://github.com/zerocore-ai/microsandbox/pull/361
* chore(cleanup): deprecate namespaces by @toksdotdev in https://github.com/zerocore-ai/microsandbox/pull/371
* fix: address RUSTSEC-2026-0007 and RUSTSEC-2026-0009 by @toksdotdev in https://github.com/zerocore-ai/microsandbox/pull/374
* refactor!: consolidate workspace into single microsandbox crate by @appcypher in https://github.com/zerocore-ai/microsandbox/pull/377
* feat(agentd): add guest agent, protocol, and build pipeline by @appcypher in https://github.com/zerocore-ai/microsandbox/pull/378
* feat: add libkrunfw vendor, build infrastructure, and setup module by @appcypher in https://github.com/zerocore-ai/microsandbox/pull/379
* feat(db): add database foundation with migrations, entities, and pool by @appcypher in https://github.com/zerocore-ai/microsandbox/pull/380
* refactor!: move workspace crates under crates/ directory by @appcypher in https://github.com/zerocore-ai/microsandbox/pull/381
* feat(runtime): add runtime infrastructure and CLI subcommands by @appcypher in https://github.com/zerocore-ai/microsandbox/pull/382
* feat(runtime): wire agent_fd through virtio-console multi-port (#383) by @appcypher in https://github.com/zerocore-ai/microsandbox/pull/383
* build: add build and build-signed justfile recipes (#384) by @appcypher in https://github.com/zerocore-ai/microsandbox/pull/384
* refactor(cli): use direct CLI args and add clap styles (#385) by @appcypher in https://github.com/zerocore-ai/microsandbox/pull/385
* feat(microsandbox): add core SDK infrastructure (#386) by @appcypher in https://github.com/zerocore-ai/microsandbox/pull/386
* feat(microsandbox): add exec, attach, and streaming execution (#387) by @appcypher in https://github.com/zerocore-ai/microsandbox/pull/387
* feat(microsandbox): add filesystem and volume management (#388) by @appcypher in https://github.com/zerocore-ai/microsandbox/pull/388
* refactor(db): move entities to shared crate and add status enums (#389) by @appcypher in https://github.com/zerocore-ai/microsandbox/pull/389
* feat(filesystem): add passthrough filesystem backend (#390) by @appcypher in https://github.com/zerocore-ai/microsandbox/pull/390
* feat(microsandbox): add basic example and fix SDK boot issues (#391) by @appcypher in https://github.com/zerocore-ai/microsandbox/pull/391
* feat(agentd): add boot timing instrumentation to ready signal by @appcypher in https://github.com/zerocore-ai/microsandbox/pull/393
* refactor(agentd): decouple agentd into standalone workspace by @appcypher in https://github.com/zerocore-ai/microsandbox/pull/394
* fix: resolve VM boot hang and macOS passthrough filesystem issues by @appcypher in https://github.com/zerocore-ai/microsandbox/pull/395
* fix(filesystem): fix macOS passthrough bugs and add comprehensive tests by @appcypher in https://github.com/zerocore-ai/microsandbox/pull/396
* fix(filesystem): allow backslash in filename validation by @appcypher in https://github.com/zerocore-ai/microsandbox/pull/397
* feat(filesystem): add overlay filesystem backend with copy-on-write semantics by @appcypher in https://github.com/zerocore-ai/microsandbox/pull/399
* refactor(filesystem): rename backend modules and adopt conventional naming by @appcypher in https://github.com/zerocore-ai/microsandbox/pull/400
* feat(filesystem): add memfs, proxyfs, and dualfs backends by @appcypher in https://github.com/zerocore-ai/microsandbox/pull/401
* refactor(filesystem): rename state to work in overlayfs tests by @appcypher in https://github.com/zerocore-ai/microsandbox/pull/402
* refactor(sandbox): separate attach command from options by @appcypher in https://github.com/zerocore-ai/microsandbox/pull/403
* feat(filesystem): add rename flags and tests for memfs, proxyfs, dualfs by @appcypher in https://github.com/zerocore-ai/microsandbox/pull/404
* feat(sandbox): add mount hooks and VolumeMount::Backend variant by @appcypher in https://github.com/zerocore-ai/microsandbox/pull/407
* feat(filesystem): add sidecar index for overlayfs layer acceleration by @appcypher in https://github.com/zerocore-ai/microsandbox/pull/408
* feat(sandbox): add type-safe byte-size units for SDK APIs by @appcypher in https://github.com/zerocore-ai/microsandbox/pull/409
* feat(sandbox): add ImageSource for smart rootfs detection by @appcypher in https://github.com/zerocore-ai/microsandbox/pull/410
* feat(image): add OCI image pulling with OverlayFs rootfs support by @appcypher in https://github.com/zerocore-ai/microsandbox/pull/411
* perf(image): parallelize layer extraction pipeline (#412) by @appcypher in https://github.com/zerocore-ai/microsandbox/pull/412
* feat(sandbox): add tmpfs mount support via MSB_TMPFS env var by @appcypher in https://github.com/zerocore-ai/microsandbox/pull/413
* feat(overlay): add read-only mode with optional upper layer by @appcypher in https://github.com/zerocore-ai/microsandbox/pull/414
* feat(sandbox): add disk image rootfs support (qcow2, raw, vmdk) by @appcypher in https://github.com/zerocore-ai/microsandbox/pull/415
* feat(network): add msbnet networking stack with policy, DNS, and published ports by @appcypher in https://github.com/zerocore-ai/microsandbox/pull/416
* refactor(network): replace vmnet C shim with pure Rust block2 by @appcypher in https://github.com/zerocore-ai/microsandbox/pull/417
* feat(network): add TLS interception to msbnet networking stack by @appcypher in https://github.com/zerocore-ai/microsandbox/pull/418
* refactor(filesystem): remove ProxyFs and hook/backend API surface (#419) by @appcypher in https://github.com/zerocore-ai/microsandbox/pull/420
* feat(cli): add user-facing CLI commands for sandbox lifecycle management by @appcypher in https://github.com/zerocore-ai/microsandbox/pull/421
* ci: add GitHub Actions workflows and installer script by @appcypher in https://github.com/zerocore-ai/microsandbox/pull/422
* chore: bump crates to v0.3.0 and restore artifact-based agentd CI by @appcypher in https://github.com/zerocore-ai/microsandbox/pull/423

## New Contributors
* @Sun-ZhenXing made their first contribution in https://github.com/zerocore-ai/microsandbox/pull/253
* @xosnrdev made their first contribution in https://github.com/zerocore-ai/microsandbox/pull/269
* @KunalSin9h made their first contribution in https://github.com/zerocore-ai/microsandbox/pull/261
* @semihbkgr made their first contribution in https://github.com/zerocore-ai/microsandbox/pull/274
* @Keithagy made their first contribution in https://github.com/zerocore-ai/microsandbox/pull/270
* @OAyomide made their first contribution in https://github.com/zerocore-ai/microsandbox/pull/287
* @Eronmmer made their first contribution in https://github.com/zerocore-ai/microsandbox/pull/294
* @toksdotdev made their first contribution in https://github.com/zerocore-ai/microsandbox/pull/327
* @purplesyringa made their first contribution in https://github.com/zerocore-ai/microsandbox/pull/337
* @calebax made their first contribution in https://github.com/zerocore-ai/microsandbox/pull/339
* @ChrisAB made their first contribution in https://github.com/zerocore-ai/microsandbox/pull/348
* @phact made their first contribution in https://github.com/zerocore-ai/microsandbox/pull/355
* @fatelei made their first contribution in https://github.com/zerocore-ai/microsandbox/pull/361

**Full Changelog**: https://github.com/zerocore-ai/microsandbox/compare/v0.2.4...v0.3.0