diff --git a/lib/crates/fabro-workflow/src/handler/parallel.rs b/lib/crates/fabro-workflow/src/handler/parallel.rs index 2b0aa1843..e2e46a7c8 100644 --- a/lib/crates/fabro-workflow/src/handler/parallel.rs +++ b/lib/crates/fabro-workflow/src/handler/parallel.rs @@ -210,7 +210,10 @@ impl Handler for ParallelHandler { services.run.emitter.notice( RunNoticeLevel::Warn, "parallel_base_checkpoint_failed", - format!("Could not checkpoint base state before parallel branches: {e}"), + format!( + "Could not checkpoint base state before parallel branches: {}", + fabro_sandbox::display_for_log(&e) + ), ); None } diff --git a/lib/crates/fabro-workflow/src/handler/prompt.rs b/lib/crates/fabro-workflow/src/handler/prompt.rs index 502b9666e..b3e928418 100644 --- a/lib/crates/fabro-workflow/src/handler/prompt.rs +++ b/lib/crates/fabro-workflow/src/handler/prompt.rs @@ -193,6 +193,7 @@ mod tests { use tempfile::TempDir; use super::*; + use crate::event::Emitter; fn make_services() -> EngineServices { EngineServices::test_default() @@ -273,7 +274,7 @@ mod tests { _prompt: &str, _context: &Context, _thread_id: Option<&str>, - _emitter: &Arc, + _emitter: &Arc, _sandbox: &Arc, _tool_hooks: Option>, ) -> Result { @@ -285,7 +286,7 @@ mod tests { _node: &Node, _prompt: &str, _system_prompt: Option<&str>, - _emitter: &Arc, + _emitter: &Arc, _stage_scope: &StageScope, ) -> Result { Ok(CodergenResult::Text { @@ -335,7 +336,7 @@ mod tests { _prompt: &str, _context: &Context, _thread_id: Option<&str>, - _emitter: &Arc, + _emitter: &Arc, _sandbox: &Arc, _tool_hooks: Option>, ) -> Result { @@ -347,7 +348,7 @@ mod tests { _node: &Node, _prompt: &str, _system_prompt: Option<&str>, - _emitter: &Arc, + _emitter: &Arc, _stage_scope: &StageScope, ) -> Result { Ok(CodergenResult::Text { @@ -394,7 +395,7 @@ mod tests { _prompt: &str, _context: &Context, _thread_id: Option<&str>, - _emitter: &Arc, + _emitter: &Arc, _sandbox: &Arc, _tool_hooks: Option>, ) -> Result { @@ -406,7 +407,7 @@ mod tests { _node: &Node, prompt: &str, system_prompt: Option<&str>, - _emitter: &Arc, + _emitter: &Arc, _stage_scope: &StageScope, ) -> Result { *self.captured_prompt.lock().unwrap() = Some(prompt.to_string()); diff --git a/lib/crates/fabro-workflow/src/pipeline/initialize.rs b/lib/crates/fabro-workflow/src/pipeline/initialize.rs index 0b9988147..db8f5c867 100644 --- a/lib/crates/fabro-workflow/src/pipeline/initialize.rs +++ b/lib/crates/fabro-workflow/src/pipeline/initialize.rs @@ -1051,6 +1051,11 @@ mod tests { move |event| seen.lock().unwrap().push(event.clone()) }); + // The notice we assert below is emitted before any later sandbox/setup work + // that could fail in this minimal fixture (no real + // git/devcontainer/lifecycle), so the overall result is intentionally + // ignored — the assertion runs against the captured event stream + // regardless of how `initialize` ultimately resolves. let _ = initialize(persisted, InitOptions { run_id: test_run_id(), run_store: {