Teach builder sandbox rootfs capture
All checks were successful
build / build (push) Successful in 25s

This commit is contained in:
robert
2026-05-19 13:21:32 -03:00
parent 9f56a15303
commit b802e54549
7 changed files with 34 additions and 28 deletions

View File

@@ -94,17 +94,18 @@ runtime:
```
For render/media/data agents, commands that create user-visible files MUST run
through ``await ctx.workspace_shell(...)`` or ``await ctx.workspace_python(...)``
and write under ``/workspace/outputs/...``. Do not use in-process
``asyncio.create_subprocess_exec`` for durable outputs; the agent container is
not workspace-mounted, so files created in ``/tmp`` or the image filesystem can
vanish after the request. Commands must still be bounded with timeouts and broad
exception handling, and failures must return structured JSON instead of
crashing the worker. Use ``render: bool = False`` by default and expose every
public skill argument with concrete type hints so the live ``input_schema``
contains the full call surface. If a render command returns nonzero after
emitting a usable file, preserve the file under ``/workspace/outputs/...`` and
include the command failure as a warning instead of dropping the result.
through ``await ctx.workspace_shell(...)`` or ``await ctx.workspace_python(...)``.
The platform sandbox persists ``/workspace`` writes directly and captures changed
files elsewhere in the guest rootfs under ``outputs/rootfs-captures/...``. Do
not use in-process ``asyncio.create_subprocess_exec`` for durable outputs; the
agent container is not workspace-mounted or rootfs-captured, so files created in
``/tmp`` or the image filesystem can vanish after the request. Commands must
still be bounded with timeouts and broad exception handling, and failures must
return structured JSON instead of crashing the worker. Use ``render: bool = False``
by default and expose every public skill argument with concrete type hints so
the live ``input_schema`` contains the full call surface. If a render command
returns nonzero after emitting a usable file, preserve the file and include the
command failure as a warning instead of dropping the result.
For Manim presentation agents specifically, generate a stable PDF fallback
that does not require Manim rendering. If HTML/video rendering is requested,