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