What's Changed
Breaking changes
- drop redundant MSB_PATH reads at python + node sdk layers by @toksdotdev in #730
- refactor(cli)!: consolidate network policy flags around --net-default and *.foo.com suffix by @appcypher in #774
- feat(python-sdk)!: simplify sandbox execution API by @appcypher in #776
- refactor(image)!: restructure image crate modules by @appcypher in #795
Features
- feat(sdk/go): Go SDK with full API parity (#568) by @khrees in #587
- feat(sdk/node-ts): add createWithProgress for image pull events by @Eronmmer in #589
- Add Go SDK docs and snapshots by @toksdotdev in #719
- feat(net): make ipv4 and ipv6 pool configurable by @toksdotdev in #739
- feat(network): wire ingress policy gate into publisher.rs by @toksdotdev in #621
- feat(net): add configurable port bind addresses by @toksdotdev in #747
- feat(metrics): live metrics via shared-memory registry by @appcypher in #753
- feat(cli): make --script ergonomic and add --script-raw by @appcypher in #750
- feat(cli): change start cmd to take variadic args by @cedws in #733
- feat(passthroughfs): add per-mount stat-virt and host-perms policies by @appcypher in #751
- feat(sdk): add cross-SDK raw agent client by @appcypher in #761
- feat: rotation-aware log streaming engine + sdk bindings by @toksdotdev in #755
- feat(agent-relay): raise max clients to 128 and wire id_range_step by @appcypher in #765
- Passthrough secret violation type by @wellsbunk5 in #771
- feat(ssh): add sandbox SSH client and server support by @appcypher in #779
- feat(sandbox): add configurable OCI upper size by @appcypher in #781
Fixes
- fix(release): restore pre-v0.4.4 lockfile-refresh flow by @toksdotdev in #717
- Fix Go SDK build by @toksdotdev in #720
- fix(sdk-node): accept link-local in plain-object network policies by @jachris in #724
- fix(sdk): fix zero uptime reported by AllSandboxMetrics by @cedws in #740
- fix(cli logs): emit JSON Lines in follow mode too by @dijdzv in #749
- Treat dot paths as local inputs by @qaijuang in #764
- fix(sandbox): flush root-fs writes on stop by @toksdotdev in #746
- fix(net): install tls ca certs into trust directories by @toksdotdev in #767
- Refresh cached TLS intercept certs before expiry by @venbrinoDev in #763
- fix(ci): shorten node sdk msb home paths by @toksdotdev in #772
- Fix published-port stalls by waking smoltcp after host accepts by @billroy in #780
- fix(net): harden SNI deny-domain policy evaluation by @toksdotdev in #782
- fix(network): preserve encoded request bodies during secret substitution by @toksdotdev in #768
- fix(python): harden exec options and integration coverage by @toksdotdev in #789
- fix(runtime): re-enable split irqchip on x86 Linux by @appcypher in #796
Documentation
- docs(readme): add go sdk install instruction by @toksdotdev in #736
- docs(sdk): document blocking/nonblocking nature of exec funcs by @cedws in #734
- docs(sdk/go): add cpu/memory defaults to docstrings by @cedws in #773
- docs(contributing): add agent contribution guide by @appcypher in #798
Dependencies
- chore(deps): bump the cargo group across 1 directory with 3 updates by @dependabot[bot] in #718
CI
- ci(release): warm go module proxy after tagging sdk/go by @toksdotdev in #735
Maintenance
- chore(security): revise security policy and reporting guidelines by @toksdotdev in #726
- chore(benchmarks): move suite to superradcompany/sandbox-bench by @toksdotdev in #757
- chore(ci): add python sdk integration ci by @toksdotdev in #760
- chore(releases): auto-mark rc tags as prereleases by @toksdotdev in #786
- chore(release): bump microsandbox to 0.5.0 by @appcypher in #785
New Contributors
- @khrees made their first contribution in #587
- @jachris made their first contribution in #724
- @cedws made their first contribution in #740
- @venbrinoDev made their first contribution in #763
- @billroy made their first contribution in #780
Full Changelog: v0.4.6...v0.5.0