diff --git a/Cargo.lock b/Cargo.lock index 629eb1205..749b34e4f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2952,7 +2952,7 @@ dependencies = [ "futures", "hex", "hmac 0.12.1", - "reqwest 0.13.2", + "reqwest 0.13.4", "sandbox-driver", "sandbox-driver-daytona", "sandbox-driver-daytona-config", @@ -7018,7 +7018,7 @@ dependencies = [ "daytona-api-client", "daytona-sdk", "rand 0.10.1", - "reqwest 0.13.2", + "reqwest 0.13.4", "sandbox-driver", "sandbox-driver-daytona-config", "sandbox-driver-docker", diff --git a/lib/apps/fabro-cli/src/commands/run/runner.rs b/lib/apps/fabro-cli/src/commands/run/runner.rs index bb35342e8..16776bc88 100644 --- a/lib/apps/fabro-cli/src/commands/run/runner.rs +++ b/lib/apps/fabro-cli/src/commands/run/runner.rs @@ -1002,7 +1002,9 @@ impl RunStoreBackend for HttpRunStore { async move { client.append_run_event(&run_id, &event).await } })) .await?; - self.apply_acknowledged_event(seq, event).await + // Both the sandbox lifecycle and the lithos event shapes grew this + // future past clippy's stack budget; box it once at the call. + Box::pin(self.apply_acknowledged_event(seq, event)).await } async fn write_blob(&self, data: &[u8]) -> Result { diff --git a/lib/components/fabro-agent/src/session.rs b/lib/components/fabro-agent/src/session.rs index c047a3d58..3d42bd697 100644 --- a/lib/components/fabro-agent/src/session.rs +++ b/lib/components/fabro-agent/src/session.rs @@ -4980,7 +4980,7 @@ mod tests { registry.register(counting_tool("echo", Arc::clone(&executions))); let client = make_client_without_retries(provider.clone() as Arc); let profile = Arc::new(TestProfile::with_tools(registry)); - let env = Arc::new(MockSandbox::default()); + let env = MockSandbox::default().sandbox(); let mut session = Session::new(client, profile, env, SessionOptions::default(), None); let mut rx = session.subscribe(); @@ -5014,7 +5014,7 @@ mod tests { // `make_client` installs a three-attempt policy with no delay. let client = make_client(provider.clone() as Arc).await; let profile = Arc::new(TestProfile::new()); - let env = Arc::new(MockSandbox::default()); + let env = MockSandbox::default().sandbox(); let mut session = Session::new(client, profile, env, SessionOptions::default(), None); let mut rx = session.subscribe(); @@ -5050,7 +5050,7 @@ mod tests { ])); let client = make_client(provider.clone() as Arc).await; let profile = Arc::new(TestProfile::new()); - let env = Arc::new(MockSandbox::default()); + let env = MockSandbox::default().sandbox(); let config = SessionOptions { replay_retry_policy: test_retry_policy(), ..SessionOptions::default() @@ -5092,7 +5092,7 @@ mod tests { ])); let client = make_client(provider.clone() as Arc).await; let profile = Arc::new(TestProfile::new()); - let env = Arc::new(MockSandbox::default()); + let env = MockSandbox::default().sandbox(); let config = SessionOptions { replay_retry_policy: RetryPolicy::exponential() .max_attempts(3) diff --git a/lib/components/fabro-agent/src/tools.rs b/lib/components/fabro-agent/src/tools.rs index b3d07d90a..89162e660 100644 --- a/lib/components/fabro-agent/src/tools.rs +++ b/lib/components/fabro-agent/src/tools.rs @@ -748,7 +748,6 @@ mod tests { use crate::sandbox::*; use crate::test_support::MockSandbox; use crate::tool_registry::{ToolContext, ToolDefinitionExt}; - use crate::truncation; use crate::types::SessionEvent; use crate::web_search::make_web_search_tool_with_api_key; use crate::{local_sandbox, truncation}; diff --git a/lib/components/fabro-store/src/run_state.rs b/lib/components/fabro-store/src/run_state.rs index e7c87a626..2f2478847 100644 --- a/lib/components/fabro-store/src/run_state.rs +++ b/lib/components/fabro-store/src/run_state.rs @@ -1761,11 +1761,11 @@ mod tests { McpServerStatus, Node, Outcome, ParallelBranchId, PendingReason, PermissionLevel, PullRequestCreationStatus, PullRequestLink, QuestionType, RunApprovalState, RunBillingSummary, RunControlAction, RunDiff, RunEvent, RunSize, RunSpec, RunStatus, - SandboxProviderKind, - StageContextWindowBreakdownItem, StageContextWindowCategory, StageContextWindowCountMethod, - StageContextWindowProjection, StageContextWindowStaleness, StageContextWindowWarning, - StageHandler, StageModelUsage, StageOutcome, StageState, StageTiming, SubAgentStatus, - SuccessReason, WorkflowSettings, first_event_seq, fixtures, test_support, + SandboxProviderKind, StageContextWindowBreakdownItem, StageContextWindowCategory, + StageContextWindowCountMethod, StageContextWindowProjection, StageContextWindowStaleness, + StageContextWindowWarning, StageHandler, StageModelUsage, StageOutcome, StageState, + StageTiming, SubAgentStatus, SuccessReason, WorkflowSettings, first_event_seq, fixtures, + test_support, }; use lithos_llm::catalog::{ModelId, ProviderId}; use lithos_llm::types::{ReasoningEffort, Speed}; diff --git a/lib/foundation/fabro-config/src/layers/combine.rs b/lib/foundation/fabro-config/src/layers/combine.rs index 7e801fb90..c818a808e 100644 --- a/lib/foundation/fabro-config/src/layers/combine.rs +++ b/lib/foundation/fabro-config/src/layers/combine.rs @@ -1,4 +1,4 @@ -use std::collections::HashMap; +use std::collections::{BTreeMap, HashMap}; use fabro_types::PermissionLevel; use fabro_types::settings::cli::{CliAuthStrategy, OutputFormat, OutputVerbosity};