Clone-based Docker sandboxes
Docker now uses the same clone-shaped runtime model as Daytona. When the run manifest includes a GitHub origin, Fabro clones that repository into the sandbox workspace and configures git lifecycle operations inside the sandbox. This is a breaking sandbox change:- Docker no longer bind-mounts host workspaces.
- Docker and Daytona accept GitHub origins only when cloning.
- Present non-GitHub origins fail unless
[run.clone] enabled = false. - Absent origins and
[run.clone] enabled = falseruns create empty workspaces without repository files.
DOCKER_HOST, TLS, and remote daemon security.
Run logs
Each server-dispatched run now gets its own worker tracing log atruntime/server.log. The server also exposes the log through GET /api/v1/runs/{id}/logs, so tools can fetch execution-time tracing for a single run without grepping the process-wide server log.
fabro dump now includes the same log as run.log when it is available. Dumps still succeed for older runs or submitted runs that do not have a worker log yet.
Operators
Worker subprocesses continue writing to the main<storage>/logs/server.log, and also mirror worker tracing into the per-run file. FABRO_LOG still controls log verbosity; if a server config sets [server.logging] level, that level is now propagated to workers unless the parent process already set FABRO_LOG.
Server logs can also go to stdout, which is useful for containers and process supervisors:
More
API
API
- New
GET /api/v1/runs/{id}/logsendpoint returns the per-run worker log - Server settings now include
server.logging.destinationwithfileandstdoutvalues
CLI
CLI
fabro dumpnow includes per-run worker logs asrun.logwhen they are available
Fixes
Fixes
- Fixed web requests being served from non-canonical hosts instead of redirecting to the configured canonical host