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