mirror of
https://github.com/fabro-sh/fabro.git
synced 2026-10-01 02:04:24 +00:00
Update the second copy of the sandbox clone note in AGENTS.md
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
parent
06f9cb8361
commit
b9b4e28efa
1 changed files with 6 additions and 15 deletions
21
AGENTS.md
21
AGENTS.md
|
|
@ -141,21 +141,12 @@ Fabro is an AI-powered workflow orchestration platform. Workflows are defined as
|
|||
### Docker sandbox provider
|
||||
- Docker is the default runtime sandbox provider from `defaults.toml`. The Fabro process must have a working Docker client environment (`DOCKER_HOST`, socket access, Docker Desktop behavior, TLS settings, groups/permissions, and any remote daemon policy are operator responsibilities).
|
||||
- The packaged compose service mounts `/var/run/docker.sock` so the server can create sibling run containers on the host daemon. This is host-root-equivalent under Docker's security model; only use it in the trusted, single-tenant deployment model described by the sandbox code/docs.
|
||||
- Docker and Daytona are clone-based providers. When a run manifest has a GitHub origin, they clone it into the provider workspace. Present non-GitHub origins fail unless the provider has `skip_clone = true`; absent origins or `skip_clone = true` create an empty workspace without repository files. For an exact commit, the submitted branch names the working branch and the syntactically valid SHA is requested directly. No layer proves branch/SHA ancestry: a fetchable commit is checked out, an unavailable commit fails setup, and branch HEAD is never substituted.
|
||||
- The sandbox layer also accepts an optional exact commit for future admitted
|
||||
runs. An exact commit always requires a non-empty branch. The sandbox driver
|
||||
performs the pin the same way on every provider: it initializes an empty
|
||||
repository, fetches the SHA directly at the requested depth, and attaches
|
||||
the admitted branch to it, so the workspace reports the admitted branch
|
||||
name. Daytona's native toolbox clone serves plain branch clones only; its
|
||||
commit pin checks the branch head out first, so the driver does not use
|
||||
it. A successful clone has the pin checked out; the driver's
|
||||
conformance suite verifies that on every provider, and fabro does not
|
||||
re-verify HEAD. Never fall back to a newer branch HEAD, and do not wire
|
||||
this capability directly from legacy `GitContext.sha`. The sandbox layer
|
||||
does not verify that the commit is reachable from the branch; admission
|
||||
owns that check. Current production callers remain branch-only until the
|
||||
RunIntent admission cutover supplies a validated branch/SHA pair.
|
||||
- Fabro no longer clones a repository into a sandbox: the engine prepares
|
||||
every run's checkout. `CloneRequest` still travels beside the sandbox spec
|
||||
so the run record names the origin and branch; fabro validates it (a pin
|
||||
needs a branch, a non-GitHub origin needs `skip_clone`) and refuses a
|
||||
request that asks for a clone. Preflight and `fabro exec` initialize
|
||||
sandboxes with `CloneRequest::none()`, which creates an empty workspace.
|
||||
|
||||
### Release automation
|
||||
- `cargo dev release` — creates the next stable release tag. Use `cargo dev release --nightly` for a nightly prerelease. Use `--dry-run` to print planned commands without mutating git or running Cargo, `--skip-tests` only after running the release-mode smoke yourself, and `--release-date YYYY-MM-DD` or `FABRO_RELEASE_DATE` for deterministic version computation.
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue