Skip to content

v0.9.120

Changes since v0.9.119, including HEAD and the working tree. Generated-file churn and test-only changes are omitted.

Breaking Changes

  • Sandbox persistence now requires AppKit’s Lakebase plugin. Disk ownership storage, assignment seeds, and defaultRemotePort configuration are removed.
  • Replace add_ssh_route / remove_ssh_route with persisted Project operations: add_ssh_project / remove_ssh_project.
  • findFiles() now returns an async generator; use findFilesSync() for synchronous discovery. watchFiles() now requires await.
  • Replace SERVER_WATCH_DISABLED / --server-watch-disabled with DEV_WATCH_DISABLE / --watch-disable (-d).

New Features

  • Persist Sandbox Projects with isolated directories, mise configuration, reserved ports, authenticated routes, project terminals, and reset operations. Projects survive machine stops and app restarts.
  • Add a built-in KasmVNC desktop with XFCE, plus configurable machine software provisioning.
  • Automatically expire managed Sandboxes after 24 hours by default, with configurable lifetime and cleanup interval.
  • Add watcher include/exclude globs and same-port Vite HMR for the demo app.

Fixes

  • Partition Sandbox ownership by Lakebase role; reuse AppKit’s service-principal pool for Sandbox persistence and Mastra memory.
  • Improve desktop provisioning and access, separate machine lifecycle controls from service viewers, and stop remaining project processes during removal or reset.
  • Honor Git ignore rules in file discovery and watching; translate synchronous Python filesystem failures into Node error codes.

Validation

  • The configured release validation phase completed before this review, as provided. No tests or additional validation commands were run; no files were modified.