From 928b2f585bf1df9a95c0f18f4f681ce10b06c679 Mon Sep 17 00:00:00 2001 From: Bryan Helmkamp Date: Tue, 28 Apr 2026 09:24:41 -0700 Subject: [PATCH] refactor: drop WorkdirStrategy and RunOptions.checkpoints_disabled MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit WorkdirStrategy was structurally redundant with the existing LocalSandboxLayer.worktree_mode config — Local sandboxes always picked LocalWorktree, everything else picked Cloud, and the LocalDirectory arm was only ever reachable via the parallel checkpoints_disabled bool. resolve_worktree_plan now reads worktree_mode directly: Cloud sandboxes return None with a pre_run_git base sha; Local + Never returns None with no base sha; Local + non-Never builds the WorktreePlan as before. RunOptions.checkpoints_disabled drops out: the lifecycle gate becomes has_run_branch (git: None alone is the canonical "no git checkpoints" signal), and tests/fixtures stop carrying the field. --- lib/crates/fabro-sandbox/src/lib.rs | 2 +- lib/crates/fabro-sandbox/src/sandbox_spec.rs | 50 - .../src/handler/manager_loop.rs | 25 +- .../fabro-workflow/src/lifecycle/mod.rs | 3 +- .../fabro-workflow/src/operations/start.rs | 25 +- .../src/pipeline/execute/tests.rs | 25 +- .../fabro-workflow/src/pipeline/finalize.rs | 25 +- .../fabro-workflow/src/pipeline/initialize.rs | 131 +- .../fabro-workflow/src/pipeline/retro.rs | 25 +- lib/crates/fabro-workflow/src/run_options.rs | 26 +- lib/crates/fabro-workflow/src/test_support.rs | 2 +- .../tests/it/daytona_integration.rs | 78 +- .../tests/it/git_integration.rs | 25 +- .../fabro-workflow/tests/it/integration.rs | 2852 ++++++++--------- 14 files changed, 1551 insertions(+), 1743 deletions(-) diff --git a/lib/crates/fabro-sandbox/src/lib.rs b/lib/crates/fabro-sandbox/src/lib.rs index fae5f8d03..a35b9d3ea 100644 --- a/lib/crates/fabro-sandbox/src/lib.rs +++ b/lib/crates/fabro-sandbox/src/lib.rs @@ -39,5 +39,5 @@ pub use sandbox::{ }; pub use sandbox_provider::SandboxProvider; pub use sandbox_record::SandboxRecord; -pub use sandbox_spec::{SandboxSpec, WorkdirStrategy}; +pub use sandbox_spec::SandboxSpec; pub use worktree::{WorktreeEvent, WorktreeEventCallback, WorktreeOptions, WorktreeSandbox}; diff --git a/lib/crates/fabro-sandbox/src/sandbox_spec.rs b/lib/crates/fabro-sandbox/src/sandbox_spec.rs index fdcf6629a..644b0f5d3 100644 --- a/lib/crates/fabro-sandbox/src/sandbox_spec.rs +++ b/lib/crates/fabro-sandbox/src/sandbox_spec.rs @@ -13,7 +13,6 @@ use fabro_types::RunId; #[cfg(any(feature = "docker", feature = "daytona"))] use crate::clone_source; -use crate::config::WorktreeMode; #[cfg(feature = "daytona")] use crate::daytona::{DaytonaConfig, DaytonaSandbox, DaytonaSnapshotConfig}; #[cfg(feature = "docker")] @@ -46,13 +45,6 @@ pub enum SandboxSpec { }, } -#[derive(Clone, Copy, Debug, PartialEq, Eq)] -pub enum WorkdirStrategy { - LocalDirectory, - LocalWorktree, - Cloud, -} - impl SandboxSpec { pub fn provider_name(&self) -> &'static str { match self { @@ -130,22 +122,6 @@ impl SandboxSpec { } } - pub fn workdir_strategy( - &self, - _worktree_mode: WorktreeMode, - _git_is_clean: bool, - _checkpoint_present: bool, - ) -> WorkdirStrategy { - match self { - Self::Local { .. } => WorkdirStrategy::LocalWorktree, - #[allow( - unreachable_patterns, - reason = "Feature-gated variants make this fallback arm reachable on some builds." - )] - _ => WorkdirStrategy::Cloud, - } - } - #[allow( clippy::unused_async, reason = "Only Daytona construction awaits; local and Docker builds share the async API." @@ -210,29 +186,3 @@ impl SandboxSpec { } } } - -#[cfg(test)] -mod tests { - use super::*; - - #[test] - fn local_runs_use_worktrees_for_all_worktree_modes() { - let spec = SandboxSpec::Local { - working_directory: PathBuf::from("/repo"), - }; - - for mode in [ - WorktreeMode::Always, - WorktreeMode::Clean, - WorktreeMode::Dirty, - WorktreeMode::Never, - ] { - for git_is_clean in [true, false] { - assert_eq!( - spec.workdir_strategy(mode, git_is_clean, false), - WorkdirStrategy::LocalWorktree - ); - } - } - } -} diff --git a/lib/crates/fabro-workflow/src/handler/manager_loop.rs b/lib/crates/fabro-workflow/src/handler/manager_loop.rs index 05eba3c87..9e35df992 100644 --- a/lib/crates/fabro-workflow/src/handler/manager_loop.rs +++ b/lib/crates/fabro-workflow/src/handler/manager_loop.rs @@ -202,20 +202,19 @@ impl Handler for SubWorkflowHandler { let child_cancel = Arc::clone(&cancel_token); let child_run_options = RunOptions { - settings: WorkflowSettings::default(), - run_dir: child_logs, - cancel_token: Some(cancel_token), + settings: WorkflowSettings::default(), + run_dir: child_logs, + cancel_token: Some(cancel_token), // Child workflows are part of the parent run's event stream. - run_id: services.run.emitter.run_id(), - labels: HashMap::new(), - workflow_slug: None, - github_app: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: true, - base_branch: None, - display_base_sha: None, - git: None, + run_id: services.run.emitter.run_id(), + labels: HashMap::new(), + workflow_slug: None, + github_app: None, + pre_run_git: None, + fork_source_ref: None, + base_branch: None, + display_base_sha: None, + git: None, }; // Clone parent context for child; inject parent preamble diff --git a/lib/crates/fabro-workflow/src/lifecycle/mod.rs b/lib/crates/fabro-workflow/src/lifecycle/mod.rs index ff6e1f503..c6770dd9d 100644 --- a/lib/crates/fabro-workflow/src/lifecycle/mod.rs +++ b/lib/crates/fabro-workflow/src/lifecycle/mod.rs @@ -106,8 +106,7 @@ impl WorkflowLifecycle { .as_ref() .and_then(|g| g.run_branch.as_ref()) .is_some(); - let local_git_checkpoint = has_run_branch && !run_options.checkpoints_disabled; - let working_directory = if local_git_checkpoint { + let working_directory = if has_run_branch { Some(sandbox.working_directory().to_string()) } else { None diff --git a/lib/crates/fabro-workflow/src/operations/start.rs b/lib/crates/fabro-workflow/src/operations/start.rs index 74ed34682..807cecb97 100644 --- a/lib/crates/fabro-workflow/src/operations/start.rs +++ b/lib/crates/fabro-workflow/src/operations/start.rs @@ -691,19 +691,18 @@ impl RunSession { let record = persisted.run_spec(); let run_options = RunOptions { - settings: record.settings.clone(), - run_dir: persisted.run_dir().to_path_buf(), - cancel_token: self.cancel_token, - run_id: record.run_id, - labels: record.labels.clone(), - workflow_slug: record.workflow_slug.clone(), - github_app: self.github_app.clone(), - pre_run_git: record.pre_run_git.clone(), - fork_source_ref: record.fork_source_ref.clone(), - checkpoints_disabled: record.checkpoints_disabled, - base_branch: record.base_branch.clone(), - display_base_sha: None, - git: self.git.clone(), + settings: record.settings.clone(), + run_dir: persisted.run_dir().to_path_buf(), + cancel_token: self.cancel_token, + run_id: record.run_id, + labels: record.labels.clone(), + workflow_slug: record.workflow_slug.clone(), + github_app: self.github_app.clone(), + pre_run_git: record.pre_run_git.clone(), + fork_source_ref: record.fork_source_ref.clone(), + base_branch: record.base_branch.clone(), + display_base_sha: None, + git: self.git.clone(), }; let last_git_sha: Arc>> = Arc::new(Mutex::new(None)); diff --git a/lib/crates/fabro-workflow/src/pipeline/execute/tests.rs b/lib/crates/fabro-workflow/src/pipeline/execute/tests.rs index 66b9e0a4f..5dee9c4dd 100644 --- a/lib/crates/fabro-workflow/src/pipeline/execute/tests.rs +++ b/lib/crates/fabro-workflow/src/pipeline/execute/tests.rs @@ -90,19 +90,18 @@ fn test_emitter_arc(label: &str) -> Arc { fn test_run_options(run_dir: &Path, run_id: &str) -> RunOptions { RunOptions { - run_dir: run_dir.to_path_buf(), - cancel_token: None, - run_id: test_run_id(run_id), - settings: WorkflowSettings::default(), - git: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - labels: HashMap::new(), - github_app: None, - base_branch: None, - display_base_sha: None, - workflow_slug: None, + run_dir: run_dir.to_path_buf(), + cancel_token: None, + run_id: test_run_id(run_id), + settings: WorkflowSettings::default(), + git: None, + pre_run_git: None, + fork_source_ref: None, + labels: HashMap::new(), + github_app: None, + base_branch: None, + display_base_sha: None, + workflow_slug: None, } } diff --git a/lib/crates/fabro-workflow/src/pipeline/finalize.rs b/lib/crates/fabro-workflow/src/pipeline/finalize.rs index 78299eda0..4c62301cd 100644 --- a/lib/crates/fabro-workflow/src/pipeline/finalize.rs +++ b/lib/crates/fabro-workflow/src/pipeline/finalize.rs @@ -438,19 +438,18 @@ mod tests { fn test_run_options(run_dir: &std::path::Path) -> RunOptions { RunOptions { - settings: WorkflowSettings::default(), - run_dir: run_dir.to_path_buf(), - cancel_token: None, - run_id: test_run_id(), - labels: HashMap::new(), - workflow_slug: None, - github_app: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - base_branch: None, - display_base_sha: None, - git: None, + settings: WorkflowSettings::default(), + run_dir: run_dir.to_path_buf(), + cancel_token: None, + run_id: test_run_id(), + labels: HashMap::new(), + workflow_slug: None, + github_app: None, + pre_run_git: None, + fork_source_ref: None, + base_branch: None, + display_base_sha: None, + git: None, } } diff --git a/lib/crates/fabro-workflow/src/pipeline/initialize.rs b/lib/crates/fabro-workflow/src/pipeline/initialize.rs index ef8cbc923..d00f469e6 100644 --- a/lib/crates/fabro-workflow/src/pipeline/initialize.rs +++ b/lib/crates/fabro-workflow/src/pipeline/initialize.rs @@ -11,9 +11,10 @@ use fabro_auth::{ use fabro_config::RunScratch; use fabro_graphviz::graph; use fabro_hooks::{HookContext, HookDecision, HookEvent, HookRunner}; +use fabro_sandbox::config::WorktreeMode; use fabro_sandbox::{ - GitSetupIntent, ReadBeforeWriteSandbox, SandboxEventCallback, SandboxSpec, WorkdirStrategy, - WorktreeOptions, WorktreeSandbox, + GitSetupIntent, ReadBeforeWriteSandbox, SandboxEventCallback, SandboxSpec, WorktreeOptions, + WorktreeSandbox, }; use fabro_vault::Vault; use futures::future::try_join_all; @@ -100,17 +101,14 @@ async fn run_hooks( } fn resolve_worktree_plan(options: &mut InitOptions) -> Option { - if options.run_options.checkpoints_disabled { - options.run_options.display_base_sha = None; - return None; - } - let Some(worktree_mode) = options.worktree_mode else { options.run_options.display_base_sha = None; return None; }; - if options.checkpoint.is_some() && matches!(options.sandbox, SandboxSpec::Local { .. }) { + let is_local = matches!(options.sandbox, SandboxSpec::Local { .. }); + + if options.checkpoint.is_some() && is_local { if let Some(fork_source) = options.run_options.fork_source_ref.as_ref() { let base_sha = fork_source.checkpoint_sha.clone(); options.run_options.display_base_sha = Some(base_sha.clone()); @@ -121,9 +119,7 @@ fn resolve_worktree_plan(options: &mut InitOptions) -> Option { skip_branch_creation: false, }); } - } - if options.checkpoint.is_some() && matches!(options.sandbox, SandboxSpec::Local { .. }) { if let Some(git) = options.run_options.git.as_ref() { if let (Some(run_branch), Some(base_sha)) = (&git.run_branch, &git.base_sha) { options.run_options.display_base_sha = Some(base_sha.clone()); @@ -143,18 +139,14 @@ fn resolve_worktree_plan(options: &mut InitOptions) -> Option { .pre_run_git .as_ref() .map(|git| git.local_dirty); - let git_is_clean = - local_dirty.is_some_and(|status| matches!(status, fabro_types::DirtyStatus::Clean)); - let strategy = - options - .sandbox - .workdir_strategy(worktree_mode, git_is_clean, options.checkpoint.is_some()); if matches!(local_dirty, Some(fabro_types::DirtyStatus::Dirty)) { - let env_name = match strategy { - WorkdirStrategy::LocalWorktree => Some("worktree"), - WorkdirStrategy::Cloud => Some("remote sandbox"), - WorkdirStrategy::LocalDirectory => None, + let env_name = if !is_local { + Some("remote sandbox") + } else if worktree_mode == WorktreeMode::Never { + None + } else { + Some("worktree") }; if let Some(env_name) = env_name { options.emitter.notice( @@ -165,45 +157,43 @@ fn resolve_worktree_plan(options: &mut InitOptions) -> Option { } } - match strategy { - WorkdirStrategy::LocalWorktree => { - let (branch_name, base_sha) = - if let Some(fork_source) = options.run_options.fork_source_ref.as_ref() { - ( - format!("{RUN_BRANCH_PREFIX}{}", options.run_id), - Some(fork_source.checkpoint_sha.clone()), - ) - } else { - ( - format!("{RUN_BRANCH_PREFIX}{}", options.run_id), - options - .run_options - .pre_run_git - .as_ref() - .and_then(|git| git.display_base_sha.clone()), - ) - }; - options.run_options.display_base_sha = base_sha.clone(); - Some(WorktreePlan { - branch_name, - base_sha, - worktree_path: RunScratch::new(&options.run_options.run_dir).worktree_dir(), - skip_branch_creation: false, - }) - } - WorkdirStrategy::Cloud => { - options.run_options.display_base_sha = options - .run_options - .pre_run_git - .as_ref() - .and_then(|git| git.display_base_sha.clone()); - None - } - WorkdirStrategy::LocalDirectory => { - options.run_options.display_base_sha = None; - None - } + if !is_local { + options.run_options.display_base_sha = options + .run_options + .pre_run_git + .as_ref() + .and_then(|git| git.display_base_sha.clone()); + return None; } + + if worktree_mode == WorktreeMode::Never { + options.run_options.display_base_sha = None; + return None; + } + + let (branch_name, base_sha) = + if let Some(fork_source) = options.run_options.fork_source_ref.as_ref() { + ( + format!("{RUN_BRANCH_PREFIX}{}", options.run_id), + Some(fork_source.checkpoint_sha.clone()), + ) + } else { + ( + format!("{RUN_BRANCH_PREFIX}{}", options.run_id), + options + .run_options + .pre_run_git + .as_ref() + .and_then(|git| git.display_base_sha.clone()), + ) + }; + options.run_options.display_base_sha.clone_from(&base_sha); + Some(WorktreePlan { + branch_name, + base_sha, + worktree_path: RunScratch::new(&options.run_options.run_dir).worktree_dir(), + skip_branch_creation: false, + }) } fn git_setup_intent(run_options: &RunOptions) -> GitSetupIntent { @@ -848,19 +838,18 @@ mod tests { fn test_settings(run_dir: &std::path::Path) -> RunOptions { RunOptions { - settings: WorkflowSettings::default(), - run_dir: run_dir.to_path_buf(), - cancel_token: None, - run_id: test_run_id(), - labels: HashMap::new(), - workflow_slug: None, - github_app: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - base_branch: None, - display_base_sha: None, - git: None, + settings: WorkflowSettings::default(), + run_dir: run_dir.to_path_buf(), + cancel_token: None, + run_id: test_run_id(), + labels: HashMap::new(), + workflow_slug: None, + github_app: None, + pre_run_git: None, + fork_source_ref: None, + base_branch: None, + display_base_sha: None, + git: None, } } diff --git a/lib/crates/fabro-workflow/src/pipeline/retro.rs b/lib/crates/fabro-workflow/src/pipeline/retro.rs index 71cd9b9f2..dc81a591f 100644 --- a/lib/crates/fabro-workflow/src/pipeline/retro.rs +++ b/lib/crates/fabro-workflow/src/pipeline/retro.rs @@ -279,19 +279,18 @@ mod tests { fn test_run_options(run_dir: &std::path::Path) -> RunOptions { RunOptions { - settings: WorkflowSettings::default(), - run_dir: run_dir.to_path_buf(), - cancel_token: None, - run_id: test_run_id(), - labels: HashMap::new(), - workflow_slug: None, - github_app: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - base_branch: None, - display_base_sha: None, - git: None, + settings: WorkflowSettings::default(), + run_dir: run_dir.to_path_buf(), + cancel_token: None, + run_id: test_run_id(), + labels: HashMap::new(), + workflow_slug: None, + github_app: None, + pre_run_git: None, + fork_source_ref: None, + base_branch: None, + display_base_sha: None, + git: None, } } diff --git a/lib/crates/fabro-workflow/src/run_options.rs b/lib/crates/fabro-workflow/src/run_options.rs index 48ca2f2cf..02c44d80f 100644 --- a/lib/crates/fabro-workflow/src/run_options.rs +++ b/lib/crates/fabro-workflow/src/run_options.rs @@ -19,30 +19,28 @@ pub struct GitCheckpointOptions { /// Options for a workflow run. #[derive(Clone)] pub struct RunOptions { - pub settings: WorkflowSettings, - pub run_dir: PathBuf, - pub cancel_token: Option>, + pub settings: WorkflowSettings, + pub run_dir: PathBuf, + pub cancel_token: Option>, /// Unique identifier for this workflow run. - pub run_id: RunId, + pub run_id: RunId, /// User-defined key-value labels for this run. - pub labels: HashMap, + pub labels: HashMap, /// Workflow directory slug (e.g. "smoke" from `.fabro/workflows/smoke/`). - pub workflow_slug: Option, + pub workflow_slug: Option, /// GitHub credentials for pushing metadata branches to origin. - pub github_app: Option, + pub github_app: Option, /// Submitter-side git context captured before the run was created. - pub pre_run_git: Option, + pub pre_run_git: Option, /// Source checkpoint ref used by fork/rewind-created runs. - pub fork_source_ref: Option, - /// Explicit no-checkpoints mode for in-place local execution. - pub checkpoints_disabled: bool, + pub fork_source_ref: Option, /// Name of the branch the run was started from (for PR base). - pub base_branch: Option, + pub base_branch: Option, /// Base commit SHA to display in lifecycle events/UI even when /// checkpointing is disabled. - pub display_base_sha: Option, + pub display_base_sha: Option, /// Git checkpoint options; `None` means checkpointing disabled. - pub git: Option, + pub git: Option, } impl RunOptions { diff --git a/lib/crates/fabro-workflow/src/test_support.rs b/lib/crates/fabro-workflow/src/test_support.rs index 2494868a8..0a3747a49 100644 --- a/lib/crates/fabro-workflow/src/test_support.rs +++ b/lib/crates/fabro-workflow/src/test_support.rs @@ -128,7 +128,7 @@ async fn initialized( manifest_blob: None, pre_run_git: run_options.pre_run_git.clone(), fork_source_ref: run_options.fork_source_ref.clone(), - checkpoints_disabled: run_options.checkpoints_disabled, + checkpoints_disabled: false, }) .await .expect("failed to seed run.created event in run store"); diff --git a/lib/crates/fabro-workflow/tests/it/daytona_integration.rs b/lib/crates/fabro-workflow/tests/it/daytona_integration.rs index 8159e91ed..5c4874406 100644 --- a/lib/crates/fabro-workflow/tests/it/daytona_integration.rs +++ b/lib/crates/fabro-workflow/tests/it/daytona_integration.rs @@ -511,19 +511,18 @@ async fn daytona_pipeline_artifact_offload_and_sync() { let engine = WorkflowRunner::new(registry, Arc::new(Emitter::default()), env.clone()); let run_options = RunOptions { - settings: WorkflowSettings::default(), - run_dir: dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("test-run"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + settings: WorkflowSettings::default(), + run_dir: dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("test-run"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; let outcome = engine .run(&graph, &run_options) @@ -692,19 +691,18 @@ async fn daytona_git_checkpoint_remote_emits_events() { let engine = WorkflowRunner::new(registry, Arc::new(emitter), env.clone()); let run_options = RunOptions { - settings: WorkflowSettings::default(), - run_dir: dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("git-cp-test"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: Some(GitCheckpointOptions { + settings: WorkflowSettings::default(), + run_dir: dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("git-cp-test"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: Some(GitCheckpointOptions { base_sha: Some(base_sha), run_branch: Some(branch_name), meta_branch: None, @@ -876,7 +874,6 @@ async fn daytona_parallel_git_branching_e2e() { display_base_sha: None, pre_run_git: None, fork_source_ref: None, - checkpoints_disabled: false, git: Some(GitCheckpointOptions { base_sha: Some(base_sha), run_branch: Some(branch_name), @@ -1207,7 +1204,6 @@ async fn daytona_git_checkpoint_with_shadow_branch() { display_base_sha: None, pre_run_git: None, fork_source_ref: None, - checkpoints_disabled: false, git: Some(GitCheckpointOptions { base_sha: Some(base_sha), run_branch: Some(branch_name), @@ -1346,7 +1342,7 @@ async fn daytona_asset_collection() { graph.edges.push(Edge::new("create_assets", "exit")); let run_options = RunOptions { - settings: WorkflowSettings { + settings: WorkflowSettings { run: fabro_types::settings::RunNamespace { artifacts: fabro_types::settings::run::ArtifactsSettings { include: vec!["test-results/**".to_string()], @@ -1355,18 +1351,17 @@ async fn daytona_asset_collection() { }, ..WorkflowSettings::default() }, - run_dir: dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("artifact-test-daytona"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + run_dir: dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("artifact-test-daytona"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; let outcome = engine .run(&graph, &run_options) @@ -1624,7 +1619,6 @@ async fn daytona_git_push_run_branch_to_origin() { display_base_sha: None, pre_run_git: None, fork_source_ref: None, - checkpoints_disabled: false, git: Some(GitCheckpointOptions { base_sha: Some(base_sha), run_branch: Some(branch_name.clone()), diff --git a/lib/crates/fabro-workflow/tests/it/git_integration.rs b/lib/crates/fabro-workflow/tests/it/git_integration.rs index 2356bd856..611b2f055 100644 --- a/lib/crates/fabro-workflow/tests/it/git_integration.rs +++ b/lib/crates/fabro-workflow/tests/it/git_integration.rs @@ -153,19 +153,18 @@ fn make_registry() -> HandlerRegistry { fn test_run_options(run_dir: &Path) -> RunOptions { RunOptions { - run_dir: run_dir.to_path_buf(), - cancel_token: None, - run_id: fixtures::RUN_2, - settings: WorkflowSettings::default(), - git: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - labels: HashMap::new(), - github_app: None, - base_branch: None, - display_base_sha: None, - workflow_slug: None, + run_dir: run_dir.to_path_buf(), + cancel_token: None, + run_id: fixtures::RUN_2, + settings: WorkflowSettings::default(), + git: None, + pre_run_git: None, + fork_source_ref: None, + labels: HashMap::new(), + github_app: None, + base_branch: None, + display_base_sha: None, + workflow_slug: None, } } diff --git a/lib/crates/fabro-workflow/tests/it/integration.rs b/lib/crates/fabro-workflow/tests/it/integration.rs index 017f3a1e1..220ca503e 100644 --- a/lib/crates/fabro-workflow/tests/it/integration.rs +++ b/lib/crates/fabro-workflow/tests/it/integration.rs @@ -341,19 +341,18 @@ async fn end_to_end_linear_pipeline() { local_env(), ); let run_options = RunOptions { - settings: WorkflowSettings::default(), - run_dir: dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("test-run"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + settings: WorkflowSettings::default(), + run_dir: dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("test-run"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; let (outcome, state) = engine .run_with_state(&graph, &run_options) @@ -472,19 +471,18 @@ async fn end_to_end_branching_pipeline() { let engine = WorkflowRunner::new(registry, Arc::new(Emitter::default()), local_env()); let run_options = RunOptions { - settings: WorkflowSettings::default(), - run_dir: dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("test-run"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + settings: WorkflowSettings::default(), + run_dir: dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("test-run"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; let (outcome, state) = engine .run_with_state(&graph, &run_options) @@ -593,19 +591,18 @@ async fn end_to_end_human_gate_pipeline() { let engine = WorkflowRunner::new(registry, Arc::new(Emitter::default()), local_env()); let run_options = RunOptions { - settings: WorkflowSettings::default(), - run_dir: dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("test-run"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + settings: WorkflowSettings::default(), + run_dir: dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("test-run"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; let (outcome, state) = engine .run_with_state(&graph, &run_options) @@ -690,19 +687,18 @@ async fn human_gate_interrupted_input_fails_closed_without_fail_route() { let engine = WorkflowRunner::new(registry, Arc::new(Emitter::default()), local_env()); let run_options = RunOptions { - settings: WorkflowSettings::default(), - run_dir: dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("test-run"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + settings: WorkflowSettings::default(), + run_dir: dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("test-run"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; let (outcome, state) = engine .run_with_state(&graph, &run_options) @@ -802,19 +798,18 @@ async fn human_gate_interrupted_input_routes_via_outcome_fail_condition() { let engine = WorkflowRunner::new(registry, Arc::new(Emitter::default()), local_env()); let run_options = RunOptions { - settings: WorkflowSettings::default(), - run_dir: dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("test-run"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + settings: WorkflowSettings::default(), + run_dir: dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("test-run"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; let (outcome, state) = engine .run_with_state(&graph, &run_options) @@ -917,19 +912,18 @@ async fn goal_gate_routes_to_retry_target_on_failure() { let engine = WorkflowRunner::new(registry, Arc::new(Emitter::default()), local_env()); let run_options = RunOptions { - settings: WorkflowSettings::default(), - run_dir: dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("test-run"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + settings: WorkflowSettings::default(), + run_dir: dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("test-run"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; let result = engine.run(&graph, &run_options).await; assert!( @@ -1039,19 +1033,18 @@ async fn goal_gate_routes_to_retry_target_when_present() { let engine = WorkflowRunner::new(registry, Arc::new(Emitter::default()), local_env()); let run_options = RunOptions { - settings: WorkflowSettings::default(), - run_dir: dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("test-run"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + settings: WorkflowSettings::default(), + run_dir: dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("test-run"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; let (outcome, state) = engine .run_with_state(&graph, &run_options) @@ -1355,19 +1348,18 @@ async fn retry_on_failure_then_succeed() { let engine = WorkflowRunner::new(registry, Arc::new(Emitter::default()), local_env()); let run_options = RunOptions { - settings: WorkflowSettings::default(), - run_dir: dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("test-run"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + settings: WorkflowSettings::default(), + run_dir: dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("test-run"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; let outcome = engine .run(&graph, &run_options) @@ -1431,19 +1423,18 @@ async fn pipeline_with_many_nodes() { local_env(), ); let run_options = RunOptions { - settings: WorkflowSettings::default(), - run_dir: dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("test-run"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + settings: WorkflowSettings::default(), + run_dir: dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("test-run"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; let (outcome, state) = engine .run_with_state(&graph, &run_options) @@ -1779,19 +1770,18 @@ async fn smoke_test_with_mock_codergen_backend() { let engine = WorkflowRunner::new(registry, Arc::new(Emitter::default()), local_env()); let run_options = RunOptions { - settings: WorkflowSettings::default(), - run_dir: dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("test-run"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + settings: WorkflowSettings::default(), + run_dir: dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("test-run"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; let (outcome, state) = engine .run_with_state(&graph, &run_options) @@ -1882,19 +1872,18 @@ async fn end_to_end_parallel_fan_out_fan_in() { let engine = WorkflowRunner::new(registry, Arc::new(Emitter::default()), local_env()); let run_options = RunOptions { - settings: WorkflowSettings::default(), - run_dir: dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("test-run"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + settings: WorkflowSettings::default(), + run_dir: dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("test-run"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; let (outcome, state) = engine .run_with_state(&graph, &run_options) @@ -1996,19 +1985,18 @@ async fn resume_from_checkpoint_completes_pipeline() { let engine = WorkflowRunner::new(registry, Arc::new(Emitter::default()), local_env()); let run_options = RunOptions { - settings: WorkflowSettings::default(), - run_dir: dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("test-run"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + settings: WorkflowSettings::default(), + run_dir: dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("test-run"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; let (outcome, state) = engine .run_from_checkpoint_with_state(&graph, &run_options, &checkpoint) @@ -2096,19 +2084,18 @@ async fn resume_from_checkpoint_preserves_goal_gate_outcomes() { let engine = WorkflowRunner::new(registry, Arc::new(Emitter::default()), local_env()); let run_options = RunOptions { - settings: WorkflowSettings::default(), - run_dir: dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("test-run"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + settings: WorkflowSettings::default(), + run_dir: dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("test-run"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; // This should succeed because goal gate for gated_work is satisfied // via restored outcomes @@ -2140,19 +2127,18 @@ async fn graph_goal_in_context() { local_env(), ); let run_options = RunOptions { - settings: WorkflowSettings::default(), - run_dir: dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("test-run"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + settings: WorkflowSettings::default(), + run_dir: dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("test-run"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; let (_outcome, state) = engine .run_with_state(&graph, &run_options) @@ -2180,19 +2166,18 @@ async fn event_streaming_lifecycle() { let events = collect_events(&emitter); let engine = WorkflowRunner::new(make_linear_registry(), Arc::new(emitter), local_env()); let run_options = RunOptions { - settings: WorkflowSettings::default(), - run_dir: dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("test-run"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + settings: WorkflowSettings::default(), + run_dir: dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("test-run"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; engine.run(&graph, &run_options).await.expect("run"); @@ -2261,19 +2246,18 @@ async fn context_flow_between_stages() { local_env(), ); let run_options = RunOptions { - settings: WorkflowSettings::default(), - run_dir: dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("test-run"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + settings: WorkflowSettings::default(), + run_dir: dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("test-run"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; let (_outcome, state) = engine .run_with_state(&graph, &run_options) @@ -2318,19 +2302,18 @@ async fn tool_handler_e2e() { local_env(), ); let run_options = RunOptions { - settings: WorkflowSettings::default(), - run_dir: dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("test-run"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + settings: WorkflowSettings::default(), + run_dir: dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("test-run"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; let (outcome, _state) = engine .run_with_state(&graph, &run_options) @@ -2394,19 +2377,18 @@ async fn auto_approve_interviewer_e2e() { local_env(), ); let run_options = RunOptions { - settings: WorkflowSettings::default(), - run_dir: dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("test-run"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + settings: WorkflowSettings::default(), + run_dir: dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("test-run"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; let (outcome, _state) = engine .run_with_state(&graph, &run_options) @@ -2435,19 +2417,18 @@ async fn codergen_without_backend_simulated() { local_env(), ); let run_options = RunOptions { - settings: WorkflowSettings::default(), - run_dir: dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("test-run"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + settings: WorkflowSettings::default(), + run_dir: dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("test-run"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; let (_outcome, state) = engine .run_with_state(&graph, &run_options) @@ -2541,19 +2522,18 @@ async fn branching_loop_back_on_failure() { ); let engine = WorkflowRunner::new(registry, Arc::new(Emitter::default()), local_env()); let run_options = RunOptions { - settings: WorkflowSettings::default(), - run_dir: dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("test-run"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + settings: WorkflowSettings::default(), + run_dir: dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("test-run"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; let (outcome, _state) = engine .run_with_state(&graph, &run_options) @@ -2628,19 +2608,18 @@ async fn human_gate_loops_back() { registry.register("human", Box::new(HumanHandler::new(interviewer))); let engine = WorkflowRunner::new(registry, Arc::new(Emitter::default()), local_env()); let run_options = RunOptions { - settings: WorkflowSettings::default(), - run_dir: dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("test-run"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + settings: WorkflowSettings::default(), + run_dir: dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("test-run"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; let (outcome, _state) = engine .run_with_state(&graph, &run_options) @@ -2694,19 +2673,18 @@ async fn scenario_ship_a_feature() { local_env(), ); let run_options = RunOptions { - settings: WorkflowSettings::default(), - run_dir: dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("test-run"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + settings: WorkflowSettings::default(), + run_dir: dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("test-run"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; let (outcome, _state) = engine .run_with_state(&graph, &run_options) @@ -2780,19 +2758,18 @@ async fn scenario_parallel_expert_review() { let engine = WorkflowRunner::new(registry, Arc::new(Emitter::default()), local_env()); let run_options = RunOptions { - settings: WorkflowSettings::default(), - run_dir: dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("test-run"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + settings: WorkflowSettings::default(), + run_dir: dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("test-run"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; let (outcome, state) = engine .run_with_state(&graph, &run_options) @@ -2868,19 +2845,18 @@ async fn scenario_node_retries_on_retry_status() { ); let engine = WorkflowRunner::new(registry, Arc::new(Emitter::default()), local_env()); let run_options = RunOptions { - settings: WorkflowSettings::default(), - run_dir: dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("test-run"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + settings: WorkflowSettings::default(), + run_dir: dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("test-run"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; let (outcome, state) = engine .run_with_state(&graph, &run_options) @@ -2934,19 +2910,18 @@ async fn scenario_loop_restart_resets_context() { ); let engine = WorkflowRunner::new(registry, Arc::new(Emitter::default()), local_env()); let run_options = RunOptions { - settings: WorkflowSettings::default(), - run_dir: dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("test-run"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + settings: WorkflowSettings::default(), + run_dir: dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("test-run"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; let outcome = engine.run(&graph, &run_options).await.expect("run"); assert_eq!(outcome.status, StageStatus::Success); @@ -3003,19 +2978,18 @@ async fn scenario_bug_triage_router() { registry.register("conditional", Box::new(ConditionalHandler)); let engine = WorkflowRunner::new(registry, Arc::new(Emitter::default()), local_env()); let run_options = RunOptions { - settings: WorkflowSettings::default(), - run_dir: dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("test-run"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + settings: WorkflowSettings::default(), + run_dir: dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("test-run"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; let (outcome, state) = engine .run_with_state(&graph, &run_options) @@ -3066,19 +3040,18 @@ async fn scenario_crash_recovery() { registry.register("exit", Box::new(ExitHandler)); let engine = WorkflowRunner::new(registry, Arc::new(Emitter::default()), local_env()); let run_options = RunOptions { - settings: WorkflowSettings::default(), - run_dir: dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("test-run"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + settings: WorkflowSettings::default(), + run_dir: dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("test-run"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; let (outcome, state) = engine .run_from_checkpoint_with_state(&graph, &run_options, &checkpoint) @@ -3177,19 +3150,18 @@ async fn manager_loop_stop_condition_satisfied_e2e() { registry.register("stack.manager_loop", Box::new(SubWorkflowHandler)); let engine = WorkflowRunner::new(registry, Arc::new(Emitter::default()), local_env()); let run_options = RunOptions { - settings: WorkflowSettings::default(), - run_dir: dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("test-run"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + settings: WorkflowSettings::default(), + run_dir: dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("test-run"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; let (outcome, state) = engine .run_with_state(&graph, &run_options) @@ -3260,19 +3232,18 @@ async fn manager_loop_max_cycles_exceeded_e2e() { registry.register("stack.manager_loop", Box::new(SubWorkflowHandler)); let engine = WorkflowRunner::new(registry, Arc::new(Emitter::default()), local_env()); let run_options = RunOptions { - settings: WorkflowSettings::default(), - run_dir: dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("test-run"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + settings: WorkflowSettings::default(), + run_dir: dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("test-run"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; let (outcome, state) = engine .run_with_state(&graph, &run_options) @@ -3402,19 +3373,18 @@ async fn conditional_branching_success_fail_paths() { registry.register("always_fail", Box::new(AlwaysFailHandler)); let engine = WorkflowRunner::new(registry, Arc::new(Emitter::default()), local_env()); let run_options = RunOptions { - settings: WorkflowSettings::default(), - run_dir: dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("test-run"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + settings: WorkflowSettings::default(), + run_dir: dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("test-run"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; let (outcome, state) = engine .run_with_state(&graph, &run_options) @@ -3459,19 +3429,18 @@ async fn edge_selection_condition_match_wins_over_weight() { registry.register("exit", Box::new(ExitHandler)); let engine = WorkflowRunner::new(registry, Arc::new(Emitter::default()), local_env()); let run_options = RunOptions { - settings: WorkflowSettings::default(), - run_dir: dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("test-run"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + settings: WorkflowSettings::default(), + run_dir: dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("test-run"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; let (_outcome, state) = engine .run_with_state(&graph, &run_options) @@ -3510,19 +3479,18 @@ async fn edge_selection_weight_breaks_ties() { registry.register("exit", Box::new(ExitHandler)); let engine = WorkflowRunner::new(registry, Arc::new(Emitter::default()), local_env()); let run_options = RunOptions { - settings: WorkflowSettings::default(), - run_dir: dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("test-run"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + settings: WorkflowSettings::default(), + run_dir: dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("test-run"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; let (_outcome, state) = engine .run_with_state(&graph, &run_options) @@ -3553,19 +3521,18 @@ async fn edge_selection_lexical_tiebreak() { registry.register("exit", Box::new(ExitHandler)); let engine = WorkflowRunner::new(registry, Arc::new(Emitter::default()), local_env()); let run_options = RunOptions { - settings: WorkflowSettings::default(), - run_dir: dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("test-run"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + settings: WorkflowSettings::default(), + run_dir: dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("test-run"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; let (_outcome, state) = engine .run_with_state(&graph, &run_options) @@ -3615,19 +3582,18 @@ async fn context_updates_visible_across_nodes() { registry.register("context_setter", Box::new(ContextSetterHandler)); let engine = WorkflowRunner::new(registry, Arc::new(Emitter::default()), local_env()); let run_options = RunOptions { - settings: WorkflowSettings::default(), - run_dir: dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("test-run"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + settings: WorkflowSettings::default(), + run_dir: dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("test-run"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; let (_outcome, state) = engine .run_with_state(&graph, &run_options) @@ -3663,19 +3629,18 @@ async fn stylesheet_applies_model_override() { local_env(), ); let run_options = RunOptions { - settings: WorkflowSettings::default(), - run_dir: dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("test-run"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + settings: WorkflowSettings::default(), + run_dir: dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("test-run"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; let outcome = engine.run(&graph, &run_options).await.expect("run"); assert_eq!(outcome.status, StageStatus::Success); @@ -3720,19 +3685,18 @@ async fn custom_handler_registration_and_execution() { registry.register("my_custom", Box::new(CustomHandler)); let engine = WorkflowRunner::new(registry, Arc::new(Emitter::default()), local_env()); let run_options = RunOptions { - settings: WorkflowSettings::default(), - run_dir: dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("test-run"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + settings: WorkflowSettings::default(), + run_dir: dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("test-run"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; let (_outcome, state) = engine .run_with_state(&graph, &run_options) @@ -3799,19 +3763,18 @@ async fn integration_smoke_plan_implement_review_done() { local_env(), ); let run_options = RunOptions { - settings: WorkflowSettings::default(), - run_dir: dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("test-run"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + settings: WorkflowSettings::default(), + run_dir: dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("test-run"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; let (outcome, state) = engine .run_with_state(&graph, &run_options) @@ -3892,19 +3855,18 @@ async fn manager_loop_runs_child_engine_e2e() { let engine = WorkflowRunner::new(registry, Arc::new(Emitter::default()), local_env()); let run_options = RunOptions { - settings: WorkflowSettings::default(), - run_dir: dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("test-run"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + settings: WorkflowSettings::default(), + run_dir: dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("test-run"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; let (outcome, state) = engine .run_with_state(&graph, &run_options) @@ -4027,19 +3989,18 @@ async fn manager_loop_context_flows_e2e() { let engine = WorkflowRunner::new(registry, Arc::new(Emitter::default()), local_env()); let run_options = RunOptions { - settings: WorkflowSettings::default(), - run_dir: dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("test-run"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + settings: WorkflowSettings::default(), + run_dir: dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("test-run"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; let (outcome, state) = engine .run_with_state(&graph, &run_options) @@ -4104,19 +4065,18 @@ async fn manager_loop_child_dotfile_e2e() { let engine = WorkflowRunner::new(registry, Arc::new(Emitter::default()), local_env()); let run_options = RunOptions { - settings: WorkflowSettings::default(), - run_dir: dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("test-run"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + settings: WorkflowSettings::default(), + run_dir: dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("test-run"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; let outcome = engine.run(&graph, &run_options).await.expect("run"); assert_eq!(outcome.status, StageStatus::Success); @@ -4209,19 +4169,18 @@ async fn import_e2e_through_engine() { local_env(), ); let run_options = RunOptions { - settings: WorkflowSettings::default(), - run_dir: dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("test-run"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + settings: WorkflowSettings::default(), + run_dir: dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("test-run"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; let (outcome, state) = engine .run_with_state(&graph, &run_options) @@ -4365,19 +4324,18 @@ async fn fidelity_default_is_compact() { let engine = WorkflowRunner::new(registry, Arc::new(Emitter::default()), local_env()); let run_options = RunOptions { - settings: WorkflowSettings::default(), - run_dir: dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("test-run"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + settings: WorkflowSettings::default(), + run_dir: dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("test-run"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; engine.run(&graph, &run_options).await.expect("run"); @@ -4423,19 +4381,18 @@ async fn fidelity_graph_default_applied() { let engine = WorkflowRunner::new(registry, Arc::new(Emitter::default()), local_env()); let run_options = RunOptions { - settings: WorkflowSettings::default(), - run_dir: dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("test-run"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + settings: WorkflowSettings::default(), + run_dir: dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("test-run"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; engine.run(&graph, &run_options).await.expect("run"); @@ -4477,19 +4434,18 @@ async fn fidelity_node_overrides_graph_default() { let engine = WorkflowRunner::new(registry, Arc::new(Emitter::default()), local_env()); let run_options = RunOptions { - settings: WorkflowSettings::default(), - run_dir: dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("test-run"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + settings: WorkflowSettings::default(), + run_dir: dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("test-run"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; engine.run(&graph, &run_options).await.expect("run"); @@ -4537,19 +4493,18 @@ async fn fidelity_edge_overrides_node_and_graph() { let engine = WorkflowRunner::new(registry, Arc::new(Emitter::default()), local_env()); let run_options = RunOptions { - settings: WorkflowSettings::default(), - run_dir: dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("test-run"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + settings: WorkflowSettings::default(), + run_dir: dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("test-run"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; engine.run(&graph, &run_options).await.expect("run"); @@ -4587,19 +4542,18 @@ async fn fidelity_full_produces_empty_preamble() { let engine = WorkflowRunner::new(registry, Arc::new(Emitter::default()), local_env()); let run_options = RunOptions { - settings: WorkflowSettings::default(), - run_dir: dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("test-run"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + settings: WorkflowSettings::default(), + run_dir: dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("test-run"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; engine.run(&graph, &run_options).await.expect("run"); @@ -4647,19 +4601,18 @@ async fn fidelity_truncate_preamble_minimal() { let engine = WorkflowRunner::new(registry, Arc::new(Emitter::default()), local_env()); let run_options = RunOptions { - settings: WorkflowSettings::default(), - run_dir: dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("test-run"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + settings: WorkflowSettings::default(), + run_dir: dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("test-run"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; engine.run(&graph, &run_options).await.expect("run"); @@ -4720,19 +4673,18 @@ async fn fidelity_summary_low_mode() { let engine = WorkflowRunner::new(registry, Arc::new(Emitter::default()), local_env()); let run_options = RunOptions { - settings: WorkflowSettings::default(), - run_dir: dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("test-run"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + settings: WorkflowSettings::default(), + run_dir: dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("test-run"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; engine.run(&graph, &run_options).await.expect("run"); @@ -4788,19 +4740,18 @@ async fn fidelity_summary_medium_mode() { let engine = WorkflowRunner::new(registry, Arc::new(Emitter::default()), local_env()); let run_options = RunOptions { - settings: WorkflowSettings::default(), - run_dir: dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("test-run"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + settings: WorkflowSettings::default(), + run_dir: dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("test-run"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; engine.run(&graph, &run_options).await.expect("run"); @@ -4856,19 +4807,18 @@ async fn fidelity_summary_high_mode() { let engine = WorkflowRunner::new(registry, Arc::new(Emitter::default()), local_env()); let run_options = RunOptions { - settings: WorkflowSettings::default(), - run_dir: dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("test-run"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + settings: WorkflowSettings::default(), + run_dir: dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("test-run"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; engine.run(&graph, &run_options).await.expect("run"); @@ -4917,19 +4867,18 @@ async fn fidelity_full_sets_thread_id_in_context() { let engine = WorkflowRunner::new(registry, Arc::new(Emitter::default()), local_env()); let run_options = RunOptions { - settings: WorkflowSettings::default(), - run_dir: dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("test-run"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + settings: WorkflowSettings::default(), + run_dir: dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("test-run"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; engine.run(&graph, &run_options).await.expect("run"); @@ -4989,19 +4938,18 @@ async fn fidelity_full_nodes_share_thread_id() { let engine = WorkflowRunner::new(registry, Arc::new(Emitter::default()), local_env()); let run_options = RunOptions { - settings: WorkflowSettings::default(), - run_dir: dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("test-run"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + settings: WorkflowSettings::default(), + run_dir: dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("test-run"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; engine.run(&graph, &run_options).await.expect("run"); @@ -5071,19 +5019,18 @@ async fn fidelity_resume_degrades_full_to_summary_high() { let engine = WorkflowRunner::new(registry, Arc::new(Emitter::default()), local_env()); let run_options = RunOptions { - settings: WorkflowSettings::default(), - run_dir: dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("test-run"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + settings: WorkflowSettings::default(), + run_dir: dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("test-run"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; engine .run_from_checkpoint(&graph, &run_options, &checkpoint) @@ -5169,19 +5116,18 @@ async fn fidelity_resume_degrade_only_affects_first_hop() { let engine = WorkflowRunner::new(registry, Arc::new(Emitter::default()), local_env()); let run_options = RunOptions { - settings: WorkflowSettings::default(), - run_dir: dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("test-run"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + settings: WorkflowSettings::default(), + run_dir: dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("test-run"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; engine .run_from_checkpoint(&graph, &run_options, &checkpoint) @@ -5254,19 +5200,18 @@ async fn fidelity_resume_no_degrade_when_not_full() { let engine = WorkflowRunner::new(registry, Arc::new(Emitter::default()), local_env()); let run_options = RunOptions { - settings: WorkflowSettings::default(), - run_dir: dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("test-run"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + settings: WorkflowSettings::default(), + run_dir: dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("test-run"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; engine .run_from_checkpoint(&graph, &run_options, &checkpoint) @@ -5297,19 +5242,18 @@ async fn fidelity_stored_in_checkpoint_context() { let engine = WorkflowRunner::new(registry, Arc::new(Emitter::default()), local_env()); let run_options = RunOptions { - settings: WorkflowSettings::default(), - run_dir: dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("test-run"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + settings: WorkflowSettings::default(), + run_dir: dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("test-run"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; let (_outcome, state) = engine .run_with_state(&graph, &run_options) @@ -5391,19 +5335,18 @@ async fn fidelity_precedence_multi_node_pipeline() { let engine = WorkflowRunner::new(registry, Arc::new(Emitter::default()), local_env()); let run_options = RunOptions { - settings: WorkflowSettings::default(), - run_dir: dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("test-run"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + settings: WorkflowSettings::default(), + run_dir: dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("test-run"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; engine.run(&graph, &run_options).await.expect("run"); @@ -5460,19 +5403,18 @@ async fn fidelity_compact_preamble_includes_completed_stages_and_context() { let engine = WorkflowRunner::new(registry, Arc::new(Emitter::default()), local_env()); let run_options = RunOptions { - settings: WorkflowSettings::default(), - run_dir: dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("test-run"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + settings: WorkflowSettings::default(), + run_dir: dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("test-run"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; engine.run(&graph, &run_options).await.expect("run"); @@ -5536,19 +5478,18 @@ async fn fidelity_summary_low_excludes_context_values_in_pipeline() { ); let engine_low = WorkflowRunner::new(registry_low, Arc::new(Emitter::default()), local_env()); let run_options_low = RunOptions { - settings: WorkflowSettings::default(), - run_dir: dir_low.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("test-run"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + settings: WorkflowSettings::default(), + run_dir: dir_low.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("test-run"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; engine_low .run(&graph_low, &run_options_low) @@ -5604,19 +5545,18 @@ async fn fidelity_summary_low_excludes_context_values_in_pipeline() { ); let engine_med = WorkflowRunner::new(registry_med, Arc::new(Emitter::default()), local_env()); let run_options_med = RunOptions { - settings: WorkflowSettings::default(), - run_dir: dir_med.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("test-run"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + settings: WorkflowSettings::default(), + run_dir: dir_med.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("test-run"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; engine_med .run(&graph_med, &run_options_med) @@ -5677,19 +5617,18 @@ async fn fidelity_thread_id_fallback_to_previous_node_in_pipeline() { let engine = WorkflowRunner::new(registry, Arc::new(Emitter::default()), local_env()); let run_options = RunOptions { - settings: WorkflowSettings::default(), - run_dir: dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("test-run"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + settings: WorkflowSettings::default(), + run_dir: dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("test-run"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; engine.run(&graph, &run_options).await.expect("run"); @@ -5732,19 +5671,18 @@ async fn fidelity_thread_id_from_node_class_in_pipeline() { let engine = WorkflowRunner::new(registry, Arc::new(Emitter::default()), local_env()); let run_options = RunOptions { - settings: WorkflowSettings::default(), - run_dir: dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("test-run"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + settings: WorkflowSettings::default(), + run_dir: dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("test-run"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; engine.run(&graph, &run_options).await.expect("run"); @@ -5790,19 +5728,18 @@ async fn fidelity_edge_thread_id_override_in_pipeline() { let engine = WorkflowRunner::new(registry, Arc::new(Emitter::default()), local_env()); let run_options = RunOptions { - settings: WorkflowSettings::default(), - run_dir: dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("test-run"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + settings: WorkflowSettings::default(), + run_dir: dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("test-run"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; engine.run(&graph, &run_options).await.expect("run"); @@ -5849,19 +5786,18 @@ async fn fidelity_full_without_explicit_thread_id_uses_previous_node() { let engine = WorkflowRunner::new(registry, Arc::new(Emitter::default()), local_env()); let run_options = RunOptions { - settings: WorkflowSettings::default(), - run_dir: dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("test-run"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + settings: WorkflowSettings::default(), + run_dir: dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("test-run"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; engine.run(&graph, &run_options).await.expect("run"); @@ -5918,19 +5854,18 @@ async fn fidelity_from_parsed_dot_pipeline() { let engine = WorkflowRunner::new(registry, Arc::new(Emitter::default()), local_env()); let run_options = RunOptions { - settings: WorkflowSettings::default(), - run_dir: dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("test-run"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + settings: WorkflowSettings::default(), + run_dir: dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("test-run"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; engine.run(&graph, &run_options).await.expect("run"); @@ -5968,19 +5903,18 @@ async fn fidelity_checkpoint_roundtrip_preserves_fidelity() { let engine = WorkflowRunner::new(registry, Arc::new(Emitter::default()), local_env()); let run_options = RunOptions { - settings: WorkflowSettings::default(), - run_dir: dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("test-run"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + settings: WorkflowSettings::default(), + run_dir: dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("test-run"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; let (_outcome, state) = engine .run_with_state(&graph, &run_options) @@ -6042,19 +5976,18 @@ async fn fidelity_node_thread_id_overrides_edge_thread_id_in_pipeline() { let engine = WorkflowRunner::new(registry, Arc::new(Emitter::default()), local_env()); let run_options = RunOptions { - settings: WorkflowSettings::default(), - run_dir: dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("test-run"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + settings: WorkflowSettings::default(), + run_dir: dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("test-run"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; engine.run(&graph, &run_options).await.expect("run"); @@ -6130,19 +6063,18 @@ async fn fidelity_resume_preserves_context_values_across_checkpoint() { let engine = WorkflowRunner::new(registry, Arc::new(Emitter::default()), local_env()); let run_options = RunOptions { - settings: WorkflowSettings::default(), - run_dir: dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("test-run"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + settings: WorkflowSettings::default(), + run_dir: dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("test-run"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; let (_outcome, state) = engine .run_from_checkpoint_with_state(&graph, &run_options, &checkpoint) @@ -6367,19 +6299,18 @@ mod real_llm { let engine = WorkflowRunner::new(registry, Arc::new(Emitter::default()), local_env()); let run_options = RunOptions { - settings: WorkflowSettings::default(), - run_dir: dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("test-run"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + settings: WorkflowSettings::default(), + run_dir: dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("test-run"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; let (outcome, state) = tokio::time::timeout( std::time::Duration::from_mins(2), @@ -6477,19 +6408,18 @@ mod real_llm { let engine = WorkflowRunner::new(registry, Arc::new(Emitter::default()), local_env()); let run_options = RunOptions { - settings: WorkflowSettings::default(), - run_dir: dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("test-run"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + settings: WorkflowSettings::default(), + run_dir: dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("test-run"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; let outcome = tokio::time::timeout( std::time::Duration::from_mins(2), @@ -6611,19 +6541,18 @@ mod real_llm { let engine = WorkflowRunner::new(registry, Arc::new(Emitter::default()), local_env()); let run_options = RunOptions { - settings: WorkflowSettings::default(), - run_dir: dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("test-run"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + settings: WorkflowSettings::default(), + run_dir: dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("test-run"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; let outcome = tokio::time::timeout( std::time::Duration::from_mins(2), @@ -6713,19 +6642,18 @@ mod real_llm { let engine = WorkflowRunner::new(registry, Arc::new(Emitter::default()), local_env()); let run_options = RunOptions { - settings: WorkflowSettings::default(), - run_dir: dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("test-run"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + settings: WorkflowSettings::default(), + run_dir: dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("test-run"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; let (outcome, state) = tokio::time::timeout( std::time::Duration::from_secs(30), @@ -6852,19 +6780,18 @@ async fn workflow_run_with_vault_only_openai_codex_builds_pr_body() { let engine = WorkflowRunner::new(registry, Arc::new(Emitter::default()), local_env()); let run_options = RunOptions { - settings: WorkflowSettings::default(), - run_dir: dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("vault-only-openai-codex-pr-body"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + settings: WorkflowSettings::default(), + run_dir: dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("vault-only-openai-codex-pr-body"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; let (outcome, _) = engine .run_with_state_and_llm_source(&graph, &run_options, Arc::clone(&llm_source)) @@ -6965,19 +6892,18 @@ async fn human_gate_freeform_only_routes_text() { let engine = WorkflowRunner::new(registry, Arc::new(Emitter::default()), local_env()); let run_options = RunOptions { - settings: WorkflowSettings::default(), - run_dir: dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("test-run"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + settings: WorkflowSettings::default(), + run_dir: dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("test-run"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; let (outcome, state) = engine .run_with_state(&graph, &run_options) @@ -7097,19 +7023,18 @@ async fn human_gate_freeform_with_fixed_choice_match() { let engine = WorkflowRunner::new(registry, Arc::new(Emitter::default()), local_env()); let run_options = RunOptions { - settings: WorkflowSettings::default(), - run_dir: dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("test-run"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + settings: WorkflowSettings::default(), + run_dir: dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("test-run"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; let (outcome, state) = engine .run_with_state(&graph, &run_options) @@ -7215,19 +7140,18 @@ async fn human_gate_freeform_fallback_on_unmatched_text() { let engine = WorkflowRunner::new(registry, Arc::new(Emitter::default()), local_env()); let run_options = RunOptions { - settings: WorkflowSettings::default(), - run_dir: dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("test-run"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + settings: WorkflowSettings::default(), + run_dir: dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("test-run"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; let (outcome, state) = engine .run_with_state(&graph, &run_options) @@ -7344,19 +7268,18 @@ async fn human_gate_freeform_sets_allow_freeform_on_question() { let engine = WorkflowRunner::new(registry, Arc::new(Emitter::default()), local_env()); let run_options = RunOptions { - settings: WorkflowSettings::default(), - run_dir: dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("test-run"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + settings: WorkflowSettings::default(), + run_dir: dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("test-run"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; let outcome = engine .run(&graph, &run_options) @@ -7454,19 +7377,18 @@ async fn human_gate_without_freeform_sets_allow_freeform_false() { let engine = WorkflowRunner::new(registry, Arc::new(Emitter::default()), local_env()); let run_options = RunOptions { - settings: WorkflowSettings::default(), - run_dir: dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("test-run"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + settings: WorkflowSettings::default(), + run_dir: dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("test-run"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; let outcome = engine .run(&graph, &run_options) @@ -7759,19 +7681,18 @@ fn engine_with_hooks_and_events( fn make_run_options(dir: &std::path::Path) -> RunOptions { RunOptions { - settings: WorkflowSettings::default(), - run_dir: dir.to_path_buf(), - cancel_token: None, - run_id: test_run_id("hook-test-run"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + settings: WorkflowSettings::default(), + run_dir: dir.to_path_buf(), + cancel_token: None, + run_id: test_run_id("hook-test-run"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, } } @@ -8699,19 +8620,18 @@ async fn run_fidelity_prompt_pipeline(fidelity: &str) -> String { let engine = WorkflowRunner::new(registry, Arc::new(Emitter::default()), local_env()); let run_options = RunOptions { - settings: WorkflowSettings::default(), - run_dir: dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("test-run"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + settings: WorkflowSettings::default(), + run_dir: dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("test-run"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; let (_outcome, state) = engine .run_with_state(&graph, &run_options) @@ -8902,19 +8822,18 @@ async fn large_context_values_are_offloaded_to_artifact_store() { let events = collect_events(&emitter); let engine = WorkflowRunner::new(registry, Arc::new(emitter), local_env()); let run_options = RunOptions { - settings: WorkflowSettings::default(), - run_dir: dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("test-run"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + settings: WorkflowSettings::default(), + run_dir: dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("test-run"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; let (outcome, _state) = engine .run_with_state(&graph, &run_options) @@ -9108,19 +9027,18 @@ async fn artifact_pointers_rewritten_for_remote_sandbox() { let remote_env = Arc::new(RemoteMockEnv::new("/sandbox")); let engine = WorkflowRunner::new(registry, Arc::new(Emitter::default()), remote_env.clone()); let run_options = RunOptions { - settings: WorkflowSettings::default(), - run_dir: dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("test-run"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + settings: WorkflowSettings::default(), + run_dir: dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("test-run"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; let (outcome, _state) = engine .run_with_state(&graph, &run_options) @@ -9197,19 +9115,18 @@ async fn downstream_local_execution_materializes_blob_refs_to_runtime_files() { let engine = WorkflowRunner::new(registry, Arc::new(Emitter::default()), local_env()); let run_options = RunOptions { - settings: WorkflowSettings::default(), - run_dir: dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("test-run"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + settings: WorkflowSettings::default(), + run_dir: dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("test-run"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; let (outcome, _state) = engine .run_with_state(&graph, &run_options) @@ -9286,19 +9203,18 @@ async fn downstream_remote_execution_materializes_blob_refs_to_sandbox_files() { let remote_env = Arc::new(RemoteMockEnv::new("/sandbox")); let engine = WorkflowRunner::new(registry, Arc::new(Emitter::default()), remote_env.clone()); let run_options = RunOptions { - settings: WorkflowSettings::default(), - run_dir: dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("test-run"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + settings: WorkflowSettings::default(), + run_dir: dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("test-run"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; let (outcome, _state) = engine .run_with_state(&graph, &run_options) @@ -9418,19 +9334,18 @@ async fn node_dir_uses_visit_count_on_revisit() { let engine = WorkflowRunner::new(registry, Arc::new(Emitter::default()), local_env()); let run_options = RunOptions { - settings: WorkflowSettings::default(), - run_dir: dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("test-run"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + settings: WorkflowSettings::default(), + run_dir: dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("test-run"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; let (outcome, state) = engine .run_with_state(&graph, &run_options) @@ -10310,19 +10225,18 @@ async fn full_pipeline_with_cli_backend_node() { let dir = tempfile::tempdir().unwrap(); let engine = WorkflowRunner::new(registry, Arc::new(Emitter::default()), env); let run_options = RunOptions { - settings: WorkflowSettings::default(), - run_dir: dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("test-run"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + settings: WorkflowSettings::default(), + run_dir: dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("test-run"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; let (outcome, state) = engine .run_with_state(&graph, &run_options) @@ -10430,19 +10344,18 @@ async fn stylesheet_backend_property_routes_to_cli() { let dir = tempfile::tempdir().unwrap(); let engine = WorkflowRunner::new(registry, Arc::new(Emitter::default()), env); let run_options = RunOptions { - settings: WorkflowSettings::default(), - run_dir: dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("test-run"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + settings: WorkflowSettings::default(), + run_dir: dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("test-run"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; let (outcome, state) = engine .run_with_state(&graph, &run_options) @@ -10628,19 +10541,18 @@ async fn git_checkpoint_host_emits_events_and_diff_patch() { let engine = WorkflowRunner::new(registry, Arc::new(emitter), env); let run_options = RunOptions { - settings: WorkflowSettings::default(), - run_dir: run_dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("test-docker"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: Some(GitCheckpointOptions { + settings: WorkflowSettings::default(), + run_dir: run_dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("test-docker"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: Some(GitCheckpointOptions { base_sha: Some(base_sha.clone()), run_branch: Some(run_branch), meta_branch: None, @@ -10806,7 +10718,6 @@ async fn git_checkpoint_host_writes_shadow_branch() { display_base_sha: None, pre_run_git: None, fork_source_ref: None, - checkpoints_disabled: false, git: Some(GitCheckpointOptions { base_sha: Some(base_sha), run_branch: Some(format!("fabro/run/{run_id}")), @@ -11019,7 +10930,6 @@ async fn parallel_git_branching_host_e2e() { display_base_sha: None, pre_run_git: None, fork_source_ref: None, - checkpoints_disabled: false, git: Some(GitCheckpointOptions { base_sha: Some(base_sha.clone()), run_branch: Some(run_branch.clone()), @@ -11259,19 +11169,18 @@ async fn git_checkpoint_host_skips_empty_diff_patch() { let engine = WorkflowRunner::new(registry, Arc::new(emitter), env); let run_options = RunOptions { - settings: WorkflowSettings::default(), - run_dir: run_dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("empty-diff"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: Some(GitCheckpointOptions { + settings: WorkflowSettings::default(), + run_dir: run_dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("empty-diff"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: Some(GitCheckpointOptions { base_sha: Some(base_sha.clone()), run_branch: Some(run_branch), meta_branch: None, @@ -11631,19 +11540,18 @@ async fn e2e_circuit_breaker_deterministic_self_loop() { let engine = WorkflowRunner::new(registry, Arc::new(Emitter::default()), local_env()); let run_options = RunOptions { - settings: WorkflowSettings::default(), - run_dir: dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("e2e-circuit-breaker"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + settings: WorkflowSettings::default(), + run_dir: dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("e2e-circuit-breaker"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; let result = engine.run(&graph, &run_options).await; assert!(result.is_err(), "pipeline should abort, not loop forever"); @@ -11679,19 +11587,18 @@ async fn e2e_circuit_breaker_custom_limit() { let engine = WorkflowRunner::new(registry, Arc::new(Emitter::default()), local_env()); let run_options = RunOptions { - settings: WorkflowSettings::default(), - run_dir: dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("e2e-custom-limit"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + settings: WorkflowSettings::default(), + run_dir: dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("e2e-custom-limit"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; let result = engine.run(&graph, &run_options).await; assert!(result.is_err()); @@ -11720,19 +11627,18 @@ async fn e2e_circuit_breaker_ignores_transient_failures() { let engine = WorkflowRunner::new(registry, Arc::new(Emitter::default()), local_env()); let run_options = RunOptions { - settings: WorkflowSettings::default(), - run_dir: dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("e2e-transient-no-breaker"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + settings: WorkflowSettings::default(), + run_dir: dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("e2e-transient-no-breaker"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; let result = engine.run(&graph, &run_options).await; assert!(result.is_err()); @@ -11768,19 +11674,18 @@ async fn e2e_circuit_breaker_different_reasons_separate_counters() { let engine = WorkflowRunner::new(registry, Arc::new(Emitter::default()), local_env()); let run_options = RunOptions { - settings: WorkflowSettings::default(), - run_dir: dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("e2e-varying-reasons"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + settings: WorkflowSettings::default(), + run_dir: dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("e2e-varying-reasons"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; let result = engine.run(&graph, &run_options).await; assert!(result.is_err()); @@ -11809,19 +11714,18 @@ async fn e2e_circuit_breaker_loop_restart() { let engine = WorkflowRunner::new(registry, Arc::new(Emitter::default()), local_env()); let run_options = RunOptions { - settings: WorkflowSettings::default(), - run_dir: dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("e2e-restart-breaker"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + settings: WorkflowSettings::default(), + run_dir: dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("e2e-restart-breaker"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; let result = engine.run(&graph, &run_options).await; assert!( @@ -11873,19 +11777,18 @@ async fn e2e_failure_signature_persisted_in_context() { let engine = WorkflowRunner::new(registry, Arc::new(Emitter::default()), local_env()); let run_options = RunOptions { - settings: WorkflowSettings::default(), - run_dir: dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("e2e-sig-context"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + settings: WorkflowSettings::default(), + run_dir: dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("e2e-sig-context"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; let (outcome, state) = engine.run_with_state(&graph, &run_options).await.unwrap(); // Pipeline reaches exit (terminal) with goal gates satisfied. @@ -11938,19 +11841,18 @@ async fn e2e_failure_signature_hint_overrides_reason_in_context() { let engine = WorkflowRunner::new(registry, Arc::new(Emitter::default()), local_env()); let run_options = RunOptions { - settings: WorkflowSettings::default(), - run_dir: dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("e2e-sig-hint"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + settings: WorkflowSettings::default(), + run_dir: dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("e2e-sig-hint"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; let (_outcome, state) = engine.run_with_state(&graph, &run_options).await.unwrap(); @@ -11997,19 +11899,18 @@ async fn e2e_signature_maps_persist_in_checkpoint() { let engine = WorkflowRunner::new(registry, Arc::new(Emitter::default()), local_env()); let run_options = RunOptions { - settings: WorkflowSettings::default(), - run_dir: dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("e2e-sig-persist"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + settings: WorkflowSettings::default(), + run_dir: dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("e2e-sig-persist"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; let (outcome, state) = engine.run_with_state(&graph, &run_options).await.unwrap(); assert_eq!(outcome.status, StageStatus::Success); @@ -12126,19 +12027,18 @@ async fn e2e_circuit_breaker_emits_events_before_abort() { let engine = WorkflowRunner::new(registry, Arc::new(emitter), local_env()); let run_options = RunOptions { - settings: WorkflowSettings::default(), - run_dir: dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("e2e-events"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + settings: WorkflowSettings::default(), + run_dir: dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("e2e-events"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; let result = engine.run(&graph, &run_options).await; assert!(result.is_err()); @@ -12194,19 +12094,18 @@ async fn e2e_circuit_breaker_does_not_fire_below_limit() { let engine = WorkflowRunner::new(registry, Arc::new(Emitter::default()), local_env()); let run_options = RunOptions { - settings: WorkflowSettings::default(), - run_dir: dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("e2e-below-limit"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + settings: WorkflowSettings::default(), + run_dir: dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("e2e-below-limit"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; let (outcome, state) = engine.run_with_state(&graph, &run_options).await.unwrap(); assert_eq!( @@ -12291,19 +12190,18 @@ async fn e2e_circuit_breaker_multi_stage_impl_verify_cycle() { let engine = WorkflowRunner::new(registry, Arc::new(Emitter::default()), local_env()); let run_options = RunOptions { - settings: WorkflowSettings::default(), - run_dir: dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("e2e-impl-verify-cycle"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + settings: WorkflowSettings::default(), + run_dir: dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("e2e-impl-verify-cycle"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; let result = engine.run(&graph, &run_options).await; assert!( @@ -12390,19 +12288,18 @@ async fn e2e_loop_restart_blocked_for_deterministic_failure() { let engine = WorkflowRunner::new(registry, Arc::new(Emitter::default()), local_env()); let run_options = RunOptions { - settings: WorkflowSettings::default(), - run_dir: dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("e2e-restart-blocked-det"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + settings: WorkflowSettings::default(), + run_dir: dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("e2e-restart-blocked-det"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; let result = engine.run(&graph, &run_options).await; assert!( @@ -12431,19 +12328,18 @@ async fn e2e_loop_restart_blocked_for_structural_failure() { let engine = WorkflowRunner::new(registry, Arc::new(Emitter::default()), local_env()); let run_options = RunOptions { - settings: WorkflowSettings::default(), - run_dir: dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("e2e-restart-blocked-struct"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + settings: WorkflowSettings::default(), + run_dir: dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("e2e-restart-blocked-struct"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; let result = engine.run(&graph, &run_options).await; assert!( @@ -12472,19 +12368,18 @@ async fn e2e_loop_restart_blocked_for_budget_exhausted_failure() { let engine = WorkflowRunner::new(registry, Arc::new(Emitter::default()), local_env()); let run_options = RunOptions { - settings: WorkflowSettings::default(), - run_dir: dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("e2e-restart-blocked-budget"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + settings: WorkflowSettings::default(), + run_dir: dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("e2e-restart-blocked-budget"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; let result = engine.run(&graph, &run_options).await; assert!( @@ -12513,19 +12408,18 @@ async fn e2e_loop_restart_blocked_for_canceled_failure() { let engine = WorkflowRunner::new(registry, Arc::new(Emitter::default()), local_env()); let run_options = RunOptions { - settings: WorkflowSettings::default(), - run_dir: dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("e2e-restart-blocked-canceled"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + settings: WorkflowSettings::default(), + run_dir: dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("e2e-restart-blocked-canceled"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; let result = engine.run(&graph, &run_options).await; assert!(result.is_err(), "canceled failure should not loop_restart"); @@ -12551,19 +12445,18 @@ async fn e2e_loop_restart_blocked_for_compilation_loop_failure() { let engine = WorkflowRunner::new(registry, Arc::new(Emitter::default()), local_env()); let run_options = RunOptions { - settings: WorkflowSettings::default(), - run_dir: dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("e2e-restart-blocked-comploop"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + settings: WorkflowSettings::default(), + run_dir: dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("e2e-restart-blocked-comploop"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; let result = engine.run(&graph, &run_options).await; assert!( @@ -12593,19 +12486,18 @@ async fn e2e_loop_restart_allowed_for_transient_infra() { let engine = WorkflowRunner::new(registry, Arc::new(Emitter::default()), local_env()); let run_options = RunOptions { - settings: WorkflowSettings::default(), - run_dir: dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("e2e-restart-allowed-transient"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + settings: WorkflowSettings::default(), + run_dir: dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("e2e-restart-allowed-transient"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; let result = engine.run(&graph, &run_options).await; assert!( @@ -12702,19 +12594,18 @@ async fn e2e_stall_watchdog_triggers_from_dot_parsed_pipeline() { let engine = WorkflowRunner::new(registry, Arc::new(emitter), local_env()); let run_options = RunOptions { - settings: WorkflowSettings::default(), - run_dir: dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("stall-e2e"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + settings: WorkflowSettings::default(), + run_dir: dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("stall-e2e"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; let result = engine.run(&graph, &run_options).await; assert!(result.is_err(), "expected stall watchdog error"); @@ -12759,19 +12650,18 @@ async fn e2e_stall_watchdog_kept_alive_by_handler_events() { let engine = WorkflowRunner::new(registry, Arc::new(Emitter::default()), local_env()); let run_options = RunOptions { - settings: WorkflowSettings::default(), - run_dir: dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("stall-alive-e2e"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + settings: WorkflowSettings::default(), + run_dir: dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("stall-alive-e2e"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; let outcome = engine .run(&graph, &run_options) @@ -12806,19 +12696,18 @@ async fn e2e_stall_watchdog_disabled_with_zero_timeout() { let engine = WorkflowRunner::new(registry, Arc::new(Emitter::default()), local_env()); let run_options = RunOptions { - settings: WorkflowSettings::default(), - run_dir: dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("stall-disabled-e2e"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + settings: WorkflowSettings::default(), + run_dir: dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("stall-disabled-e2e"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; let outcome = engine .run(&graph, &run_options) @@ -12873,19 +12762,18 @@ async fn e2e_stall_watchdog_with_explicit_timeout_override() { let engine = WorkflowRunner::new(registry, Arc::new(Emitter::default()), local_env()); let run_options = RunOptions { - settings: WorkflowSettings::default(), - run_dir: dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("stall-override-e2e"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + settings: WorkflowSettings::default(), + run_dir: dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("stall-override-e2e"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; let start = std::time::Instant::now(); let result = engine.run(&graph, &run_options).await; @@ -13008,7 +12896,7 @@ async fn asset_collection_local_sandbox_success() { graph.edges.push(Edge::new("create_assets", "exit")); let run_options = RunOptions { - settings: WorkflowSettings { + settings: WorkflowSettings { run: fabro_types::settings::RunNamespace { artifacts: fabro_types::settings::run::ArtifactsSettings { include: vec!["test-results/**".to_string()], @@ -13017,18 +12905,17 @@ async fn asset_collection_local_sandbox_success() { }, ..WorkflowSettings::default() }, - run_dir: run_dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("artifact-test-local"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + run_dir: run_dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("artifact-test-local"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; let outcome = engine .run(&graph, &run_options) @@ -13142,7 +13029,7 @@ async fn asset_collection_local_sandbox_on_failure() { graph.edges.push(Edge::new("create_assets", "exit")); let run_options = RunOptions { - settings: WorkflowSettings { + settings: WorkflowSettings { run: fabro_types::settings::RunNamespace { artifacts: fabro_types::settings::run::ArtifactsSettings { include: vec!["test-results/**".to_string()], @@ -13151,18 +13038,17 @@ async fn asset_collection_local_sandbox_on_failure() { }, ..WorkflowSettings::default() }, - run_dir: run_dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("artifact-test-fail"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + run_dir: run_dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("artifact-test-fail"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; let outcome = engine .run(&graph, &run_options) @@ -13250,7 +13136,7 @@ async fn asset_collection_docker_sandbox() { graph.edges.push(Edge::new("create_assets", "exit")); let run_options = RunOptions { - settings: WorkflowSettings { + settings: WorkflowSettings { run: fabro_types::settings::RunNamespace { artifacts: fabro_types::settings::run::ArtifactsSettings { include: vec!["test-results/**".to_string()], @@ -13259,18 +13145,17 @@ async fn asset_collection_docker_sandbox() { }, ..WorkflowSettings::default() }, - run_dir: run_dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("artifact-test-docker"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + run_dir: run_dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("artifact-test-docker"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; let outcome = engine .run(&graph, &run_options) @@ -13328,19 +13213,18 @@ async fn wait_timer_e2e() { local_env(), ); let run_options = RunOptions { - settings: WorkflowSettings::default(), - run_dir: dir.path().to_path_buf(), - cancel_token: None, - run_id: test_run_id("test-run"), - labels: std::collections::HashMap::new(), - workflow_slug: None, - github_app: None, - base_branch: None, - display_base_sha: None, - pre_run_git: None, - fork_source_ref: None, - checkpoints_disabled: false, - git: None, + settings: WorkflowSettings::default(), + run_dir: dir.path().to_path_buf(), + cancel_token: None, + run_id: test_run_id("test-run"), + labels: std::collections::HashMap::new(), + workflow_slug: None, + github_app: None, + base_branch: None, + display_base_sha: None, + pre_run_git: None, + fork_source_ref: None, + git: None, }; let outcome = engine.run(&graph, &run_options).await.expect("run"); assert_eq!(outcome.status, StageStatus::Success);