Remove shell-escaped file mutation from the stable workspace flow by adding explicit file and patch tools across the CLI, SDK, and MCP surfaces. This adds workspace file list/read/write plus unified text patch application, backed by new guest and manager file primitives that stay scoped to started workspaces and /workspace only. Patch application is preflighted on the host, file writes stay text-only and bounded, and the existing diff/export/reset semantics remain intact. The milestone also updates the 3.2.0 roadmap, public contract, docs, examples, and versioning, and includes focused coverage for the new helper module and dispatch paths. Validation: - uv lock - UV_CACHE_DIR=.uv-cache make check - UV_CACHE_DIR=.uv-cache make dist-check - real guest-backed smoke for workspace file read, patch apply, exec, export, and delete |
||
|---|---|---|
| .. | ||
| linux-x86_64 | ||
| NOTICE | ||
| README.md | ||
runtime_sources
Source-of-truth inputs for make runtime-bundle.
Current state:
build/runtime_sources/contains the real materialized runtime inputs used to build the packaged bundle.- the checked-in tracked files under
runtime_sources/linux-x86_64/are build recipes and lock metadata, not the materialized binaries/images. guest/pyro_guest_agent.pyis the guest agent source artifact that is installed into each built rootfs.- real source materialization now writes into
build/runtime_sources/, not back into the tracked placeholder files. - the packaged runtime images under
src/pyro_mcp/runtime_bundle/are stored via Git LFS, so contributor clones needgit lfs installand LFS-enabled checkout.
Materialization workflow:
make runtime-fetch-binariesmake runtime-build-kernel-realmake runtime-build-rootfs-realmake runtime-bundle
Official environment publication workflow:
make runtime-materializeDOCKERHUB_USERNAME=... DOCKERHUB_TOKEN=... make runtime-publish-official-environments-oci- if your uplink is slow, tune publishing with
PYRO_OCI_UPLOAD_TIMEOUT_SECONDS,PYRO_OCI_UPLOAD_CHUNK_SIZE_BYTES, andPYRO_OCI_REQUEST_TIMEOUT_SECONDS
Official end-user pulls are anonymous; registry credentials are only required for publishing.
Build requirements for the real path:
docker- outbound network access to the pinned upstream release hosts and Debian snapshot mirrors
- enough disk for a kernel build plus 2G ext4 images per source profile
Kernel build note:
- the kernel builder now defaults to conservative parallelism to avoid compiler crashes on memory-constrained hosts
- if you still need to force a lower setting, use
PYRO_KERNEL_BUILD_JOBS=1 make runtime-build-kernel-realorPYRO_KERNEL_BUILD_JOBS=1 make runtime-materialize
Current status:
- Firecracker and Jailer are materialized from pinned official release artifacts.
- The kernel and rootfs images are built from pinned inputs into
build/runtime_sources/. - The guest agent is installed into each rootfs and used for vsock exec plus workspace archive imports.
runtime.lock.jsonnow advertises real guest capabilities.
Safety rule:
- The build pipeline should never emit
vm_boot=true,guest_exec=true, orguest_network=truewhile any source artifact is still a shim or placeholder.