Changelog¶
All notable changes to resoluto-sandbox are documented here. The format follows
Keep a Changelog; versions follow SemVer.
Unreleased¶
0.1.0 — 2026-07-08¶
- Store-mediated, Kata-isolated execution substrate:
Sandbox(backend=...).run(argv, ...)over a passive, self-reporting sandbox that rendezvous with the host through a durableConduit. - Two backends behind one
SubstrateBackend:local(Kata microVM vianerdctlon a dedicated containerd) andk8s(short-lived Kata microVM pod). Conduitseams —LocalConduit,StdoutConduit,S3Conduit(minio/S3),GcsConduit(experimental) — and theSandboxRuntimeisolation seam.- Per-run egress control,
SandboxPoolbounded concurrency, and theSubstrateBackendthat drives the stage → run → collect lifecycle. GcsConduithardened toS3Conduitparity: bounded transient-fault retry,ConduitErrortranslation, and auth-denial (401/403) passthrough; documented as a single-tenant host-side store with no per-prefix credential scoping.store_from_envrefusesRESOLUTO_STORE_KIND=gcswith a scopedRESOLUTO_STORE_WRITE_TOKENrather than silently granting whole-service-account access.K8sSandboxRuntimerefuses to build an egressNetworkPolicyfor a pod with no labels (an empty podSelector would apply to every pod in the namespace), andclose()resets its cached API clients.- Added
SOUL.md— the substrate's design philosophy (isolation ⊥ rendezvous; the Conduit as the backend-portability seam).