fabro/lib/components/fabro-sandbox/src
Bryan Helmkamp 5ebf3ebd35
Model the Daytona snapshot source as an enum
`DaytonaSnapshotSettings` carried two independent `Option`s (`image` and
`dockerfile`) that every consumer had to re-validate. Replace them with a
single `source: DaytonaSnapshotSource { Image, Dockerfile }` so the
both-set and neither-set states are unrepresentable at the sandbox layer.
This removes four unreachable error arms in `canonical_manifest` and
`create_snapshot_params`, the `.filter(...)` guard in `initialize`, and
the presence guard in `daytona_config_from_environment`. The
mutual-exclusion rule now lives only in fabro-config, which owns the
`image.docker` / `image.dockerfile` keys the old messages named.

Merge `ImageSnapshotManifest` into `SnapshotManifest` via a flattened
`SourceManifest` enum. The dockerfile case serializes to the same bytes
as before, so existing snapshot names are unchanged; the pinned identity
test still passes. Pin the image-case identity as well so a future
manifest change cannot silently orphan image snapshots.

Fold `validate_daytona_image_settings` into the existing Daytona arm of
`validate_provider_capabilities`; both callers already invoke it right
after `resolve_environment_fields`, so error order is unchanged.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-28 16:19:56 -04:00
..
daytona Model the Daytona snapshot source as an enum 2026-08-28 16:19:56 -04:00
provider Add tag support to Git run targets 2026-08-26 11:16:37 -04:00
clone_source.rs Unify pinned tag and exact-commit clone paths 2026-08-26 12:18:58 -04:00
config.rs Model the Daytona snapshot source as an enum 2026-08-28 16:19:56 -04:00
details.rs feat: support shallow sandbox clones 2026-08-21 17:11:24 -04:00
docker.rs Unify pinned tag and exact-commit clone paths 2026-08-26 12:18:58 -04:00
error.rs fix: harden GitHub token refresh handling 2026-08-20 19:56:06 -04:00
from_environment.rs Model the Daytona snapshot source as an enum 2026-08-28 16:19:56 -04:00
git_retry.rs refactor(github): simplify repository access checks 2026-08-21 17:12:27 -04:00
lib.rs Bound agent tool output capture 2026-08-24 12:34:43 -04:00
local.rs Bound agent tool output capture 2026-08-24 12:34:43 -04:00
managed_labels.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
provider.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
push_credentials.rs Merge remote-tracking branch 'origin/main' into pr-764 2026-08-20 22:07:20 -04:00
reconnect.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
redact.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
sandbox.rs fix(sandbox): materialize prompt blobs in runtime storage, not the checkout 2026-08-25 07:14:31 -04:00
sandbox_spec.rs Add tag support to Git run targets 2026-08-26 11:16:37 -04:00
terminal.rs fix(sandbox): reactivate stopped run sandboxes 2026-07-28 12:50:20 -04:00
test_support.rs Bound agent tool output capture 2026-08-24 12:34:43 -04:00