Finish the merge with the fixes the merge commit left out

The merge commit was made from the staged hunk resolutions and did not
include the changes that followed them: the BTreeMap import the kept
Combine impl needs, main's four new session tests ported to the mock
helper, a duplicated truncation import removed, the boxed event future
the CLI runner needs to stay under clippy's size budget, the formatting
of a merged import list, and the lock refreshed after the merge. Without
these the merge commit does not compile. This is the tree the merge was
verified on.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
Bryan Helmkamp 2026-09-10 13:41:35 -06:00
parent 2e8d6b8a3d
commit 33cdbf6afc
No known key found for this signature in database
6 changed files with 15 additions and 14 deletions

4
Cargo.lock generated
View file

@ -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",

View file

@ -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<BlobHash> {

View file

@ -4980,7 +4980,7 @@ mod tests {
registry.register(counting_tool("echo", Arc::clone(&executions)));
let client = make_client_without_retries(provider.clone() as Arc<dyn ProviderAdapter>);
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<dyn ProviderAdapter>).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<dyn ProviderAdapter>).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<dyn ProviderAdapter>).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)

View file

@ -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};

View file

@ -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};

View file

@ -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};