From 8a03928db62ddabf6a05bc66a61e0d49922b816c Mon Sep 17 00:00:00 2001 From: Bryan Helmkamp Date: Sat, 28 Mar 2026 16:38:57 -0400 Subject: [PATCH] Fix sandbox spec feature gating --- lib/crates/fabro-sandbox/Cargo.toml | 6 +++--- lib/crates/fabro-sandbox/src/lib.rs | 2 -- lib/crates/fabro-sandbox/src/reconnect.rs | 1 - lib/crates/fabro-sandbox/src/sandbox_spec.rs | 4 +++- lib/crates/fabro-sandbox/src/ssh_common.rs | 4 +++- lib/crates/fabro-workflows/src/operations/mod.rs | 1 - 6 files changed, 9 insertions(+), 9 deletions(-) diff --git a/lib/crates/fabro-sandbox/Cargo.toml b/lib/crates/fabro-sandbox/Cargo.toml index f0e159fa8..3d520caab 100644 --- a/lib/crates/fabro-sandbox/Cargo.toml +++ b/lib/crates/fabro-sandbox/Cargo.toml @@ -7,7 +7,7 @@ description = "Sandbox trait and implementations for Fabro agent execution envir [features] default = ["local"] -local = ["dep:glob", "dep:libc"] +local = [] docker = ["dep:bollard", "dep:tar", "dep:futures"] ssh = ["dep:openssh", "dep:fabro-github", "dep:fabro-config"] exe = ["ssh", "fabro-config/exedev", "fabro-types/exedev"] @@ -33,7 +33,7 @@ base64.workspace = true shlex = "1" # local -glob = { version = "0.3", optional = true } +glob = { version = "0.3" } # docker bollard = { workspace = true, optional = true } @@ -56,7 +56,7 @@ daytona-api-client = { workspace = true, optional = true } git2 = { workspace = true, optional = true } [target.'cfg(unix)'.dependencies] -libc = { version = "0.2", optional = true } +libc = { version = "0.2" } [dev-dependencies] tokio = { workspace = true, features = ["test-util", "macros"] } diff --git a/lib/crates/fabro-sandbox/src/lib.rs b/lib/crates/fabro-sandbox/src/lib.rs index e6bef219b..de694d750 100644 --- a/lib/crates/fabro-sandbox/src/lib.rs +++ b/lib/crates/fabro-sandbox/src/lib.rs @@ -14,7 +14,6 @@ pub mod worktree; #[cfg(feature = "ssh")] pub(crate) mod ssh_common; -#[cfg(feature = "local")] pub mod local; #[cfg(feature = "docker")] @@ -47,7 +46,6 @@ pub use sandbox_provider::SandboxProvider; pub use worktree::{WorktreeConfig, WorktreeEvent, WorktreeEventCallback, WorktreeSandbox}; -#[cfg(feature = "local")] pub use local::LocalSandbox; #[cfg(feature = "docker")] diff --git a/lib/crates/fabro-sandbox/src/reconnect.rs b/lib/crates/fabro-sandbox/src/reconnect.rs index e432cee32..b12113cf0 100644 --- a/lib/crates/fabro-sandbox/src/reconnect.rs +++ b/lib/crates/fabro-sandbox/src/reconnect.rs @@ -17,7 +17,6 @@ use crate::ssh::{OpensshRunner, SshConfig, SshSandbox}; /// Returns a sandbox that can perform file operations. pub async fn reconnect(record: &SandboxRecord) -> Result> { match record.provider.as_str() { - #[cfg(feature = "local")] "local" => { let sandbox = LocalSandbox::new(PathBuf::from(&record.working_directory)); Ok(Box::new(sandbox)) diff --git a/lib/crates/fabro-sandbox/src/sandbox_spec.rs b/lib/crates/fabro-sandbox/src/sandbox_spec.rs index f47776abf..0d5ecef3b 100644 --- a/lib/crates/fabro-sandbox/src/sandbox_spec.rs +++ b/lib/crates/fabro-sandbox/src/sandbox_spec.rs @@ -1,9 +1,11 @@ use std::path::PathBuf; use std::sync::Arc; -use anyhow::anyhow; use fabro_types::settings::WorktreeMode; +#[cfg(any(feature = "docker", feature = "daytona", feature = "exe"))] +use anyhow::anyhow; + use crate::sandbox_record::SandboxRecord; use crate::{Sandbox, SandboxEventCallback}; diff --git a/lib/crates/fabro-sandbox/src/ssh_common.rs b/lib/crates/fabro-sandbox/src/ssh_common.rs index 2605ab156..7ea9ddc43 100644 --- a/lib/crates/fabro-sandbox/src/ssh_common.rs +++ b/lib/crates/fabro-sandbox/src/ssh_common.rs @@ -1,8 +1,10 @@ //! Shared types and utilities for SSH-based sandbox implementations (exe, ssh). -use std::path::Path; use std::time::Instant; +#[cfg(feature = "daytona")] +use std::path::Path; + use async_trait::async_trait; use base64::Engine; use base64::engine::general_purpose::STANDARD; diff --git a/lib/crates/fabro-workflows/src/operations/mod.rs b/lib/crates/fabro-workflows/src/operations/mod.rs index 7217d39f6..3d526df45 100644 --- a/lib/crates/fabro-workflows/src/operations/mod.rs +++ b/lib/crates/fabro-workflows/src/operations/mod.rs @@ -10,7 +10,6 @@ mod validate; pub use crate::pipeline::{DevcontainerSpec, LlmSpec, SandboxEnvSpec}; pub use create::{CreateRunInput, CreatedRun, create}; -pub use fabro_sandbox::SandboxSpec; pub use fork::{ForkRunInput, fork}; pub use resume::resume; pub use rewind::{