Reliability fixes across the core, plus durable apps as first-class entities above sandboxes.
Highlights
- Durable apps above sandboxes — an app owns the user-facing concept (name, description, tags) and outlives the sandbox that is its current running instance. New tenant-scoped
/v1/appsAPI; sandboxes gain a nullableapp_id. Additive and backwards-compatible. (#31) - Working app templates — a real Vite + React + TS
react-standardscaffold is seeded on first boot (default;template:"blank"for empty), so the agent edits a known-good app with a passing build and a live preview instead of an empty directory. (#29) - End-to-end + image-smoke CI — builds the image and drives the real create → seed → install → serve → wake lifecycle on Docker; asserts the agent CLIs + default template are present. (#30)
- Per-task
timeout_sand a watcher that no longer fails long tasks at 15 minutes. (#25)
Added
- Durable app model +
/v1/appsAPI (#31) - Selectable image-baked app templates (#29)
timeout_son task submit (#25)- Per-sandbox
idle_policy(sleep/always_on) (#14) - End-to-end + image-smoke CI job, and
go vet(#30)
Fixed
- Snapshot capture on directory-storage workspaces (was 500) (#24)
POST /v1/sandboxes400 on a clean install (forced an unseeded template) (#28)- Several audit correctness items (#21)
Changed / Removed
- Claude Code installed via the official native installer, alongside OpenCode (#18)
- Removed the dormant single-token auto-git-push (#23)
Upgrade notes
Backwards-compatible. The control plane applies migrations on boot (adds the app table and sandbox.app_id); rebuild the base image to pick up the react-standard template and the install-on-first-boot dev command. Existing sandboxes are unaffected (app_id is NULL).
Thanks to @amadeusCaleb, @sullamago, and @ruslan-rm for contributions in this release.
Full changelog: CHANGELOG.md · compare: v0.1.1...v0.2.0