diff --git a/lib/crates/fabro-api/src/server.rs b/lib/crates/fabro-api/src/server.rs index 59debde..faaa7be 100644 --- a/lib/crates/fabro-api/src/server.rs +++ b/lib/crates/fabro-api/src/server.rs @@ -626,8 +626,7 @@ async fn execute_run(state: Arc, run_id: String) { github_app: None, git_author: state.git_author.clone(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: true, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; diff --git a/lib/crates/fabro-workflows/src/cli/pr.rs b/lib/crates/fabro-workflows/src/cli/pr.rs index 4be38dd..3094fcd 100644 --- a/lib/crates/fabro-workflows/src/cli/pr.rs +++ b/lib/crates/fabro-workflows/src/cli/pr.rs @@ -388,6 +388,10 @@ async fn pr_create_from( .model .unwrap_or_else(|| fabro_llm::catalog::default_model().id.to_string()); + let pr_config = crate::cli::run_config::PullRequestConfig { + enabled: true, + draft: true, + }; let record = crate::pull_request::maybe_open_pull_request( &creds, &origin_url, @@ -396,7 +400,7 @@ async fn pr_create_from( &manifest.goal, &diff, &model, - true, + &pr_config, &run_dir, ) .await diff --git a/lib/crates/fabro-workflows/src/cli/run.rs b/lib/crates/fabro-workflows/src/cli/run.rs index 749f888..00c096f 100644 --- a/lib/crates/fabro-workflows/src/cli/run.rs +++ b/lib/crates/fabro-workflows/src/cli/run.rs @@ -1244,7 +1244,6 @@ pub async fn run_command( .as_ref() .map(|c| c.checkpoint.exclude_globs.clone()) .unwrap_or_default(); - let pr_cfg = run_cfg.as_ref().and_then(|c| c.pull_request.as_ref()); let config = RunConfig { run_dir: run_dir.clone(), cancel_token: None, @@ -1269,8 +1268,11 @@ pub async fn run_command( github_app: github_app.clone(), git_author, base_branch: detected_base_branch.or(remote_base_branch), - pull_request_enabled: pr_cfg.is_some_and(|p| p.enabled), - pull_request_draft: pr_cfg.is_none_or(|p| p.draft), + pull_request: run_cfg + .as_ref() + .and_then(|c| c.pull_request.as_ref()) + .filter(|p| p.enabled) + .cloned(), asset_globs: run_cfg .as_ref() .and_then(|c| c.assets.as_ref()) @@ -1416,76 +1418,78 @@ pub async fn run_command( // Auto-create PR on successful completion (skip in dry-run mode) let mut pushed_branch: Option = None; let mut pr_url: Option = None; - if !config.pull_request_enabled { - debug!("Skipping PR creation: pull_request not enabled in config"); - } else if dry_run_mode { - debug!("Skipping PR creation: dry-run mode"); - } else if let Err(ref e) = engine_result { - debug!(error = %e, "Skipping PR creation: engine returned an error"); - } else if let Ok(ref outcome) = engine_result { - if !matches!( - outcome.status, - StageStatus::Success | StageStatus::PartialSuccess - ) { - debug!(status = ?outcome.status, "Skipping PR creation: run status is not success"); - } else { - let diff = tokio::fs::read_to_string(run_dir.join("final.patch")) - .await - .unwrap_or_default(); - if let ( - Some(ref base_branch), - Some(ref run_branch), - Some(ref creds), - Some(ref origin), - ) = ( - &config.base_branch, - &config.run_branch, - &github_app, - &origin_url, + if let Some(ref pr_cfg) = config.pull_request { + if dry_run_mode { + debug!("Skipping PR creation: dry-run mode"); + } else if let Err(ref e) = engine_result { + debug!(error = %e, "Skipping PR creation: engine returned an error"); + } else if let Ok(ref outcome) = engine_result { + if !matches!( + outcome.status, + StageStatus::Success | StageStatus::PartialSuccess ) { - // Run branch was pushed during checkpoint commits; - // just record it for the PR creation. - if config.git_checkpoint_enabled { - pushed_branch = Some(run_branch.clone()); - } + debug!(status = ?outcome.status, "Skipping PR creation: run status is not success"); + } else { + let diff = tokio::fs::read_to_string(run_dir.join("final.patch")) + .await + .unwrap_or_default(); + if let ( + Some(ref base_branch), + Some(ref run_branch), + Some(ref creds), + Some(ref origin), + ) = ( + &config.base_branch, + &config.run_branch, + &github_app, + &origin_url, + ) { + // Run branch was pushed during checkpoint commits; + // just record it for the PR creation. + if config.git_checkpoint_enabled { + pushed_branch = Some(run_branch.clone()); + } - match crate::pull_request::maybe_open_pull_request( - creds, - origin, - base_branch, - run_branch, - graph.goal(), - &diff, - &model, - config.pull_request_draft, - &run_dir, - ) - .await - { - Ok(Some(record)) => { - emitter.emit(&crate::event::WorkflowRunEvent::PullRequestCreated { - pr_url: record.html_url.clone(), - pr_number: record.number, - draft: config.pull_request_draft, - }); - pr_url = Some(record.html_url.clone()); - if let Err(e) = record.save(&run_dir.join("pull_request.json")) { - tracing::warn!(error = %e, "Failed to save pull_request.json"); + match crate::pull_request::maybe_open_pull_request( + creds, + origin, + base_branch, + run_branch, + graph.goal(), + &diff, + &model, + pr_cfg, + &run_dir, + ) + .await + { + Ok(Some(record)) => { + emitter.emit(&crate::event::WorkflowRunEvent::PullRequestCreated { + pr_url: record.html_url.clone(), + pr_number: record.number, + draft: pr_cfg.draft, + }); + pr_url = Some(record.html_url.clone()); + if let Err(e) = record.save(&run_dir.join("pull_request.json")) { + tracing::warn!(error = %e, "Failed to save pull_request.json"); + } + } + Ok(None) => {} // empty diff, logged at DEBUG + Err(e) => { + emitter.emit(&crate::event::WorkflowRunEvent::PullRequestFailed { + error: e.to_string(), + }); + eprintln!( + "{} PR creation failed: {e}", + styles.yellow.apply_to("Warning:") + ); } - } - Ok(None) => {} // empty diff, logged at DEBUG - Err(e) => { - emitter.emit(&crate::event::WorkflowRunEvent::PullRequestFailed { - error: e.to_string(), - }); - eprintln!( - "{} PR creation failed: {e}", - styles.yellow.apply_to("Warning:") - ); } } } } + } else { + debug!("Skipping PR creation: pull_request not enabled in config"); } let outcome = engine_result?; @@ -1923,8 +1927,7 @@ async fn run_from_branch( github_app: github_app.clone(), git_author, base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; diff --git a/lib/crates/fabro-workflows/src/engine.rs b/lib/crates/fabro-workflows/src/engine.rs index ca68942..3c147e0 100644 --- a/lib/crates/fabro-workflows/src/engine.rs +++ b/lib/crates/fabro-workflows/src/engine.rs @@ -16,6 +16,7 @@ use fabro_git_storage::trailerlink::{self, Trailer}; use crate::artifact::{offload_large_values, sync_artifacts_to_env, ArtifactStore}; use crate::asset_snapshot; use crate::checkpoint::Checkpoint; +use crate::cli::run_config::PullRequestConfig; use crate::condition::evaluate_condition; use crate::context; use crate::context::Context; @@ -857,10 +858,8 @@ pub struct RunConfig { pub git_author: crate::git::GitAuthor, /// Name of the branch the run was started from (for PR base). pub base_branch: Option, - /// Whether to auto-create a PR on successful completion. - pub pull_request_enabled: bool, - /// Whether to create the PR as a draft. - pub pull_request_draft: bool, + /// Pull request configuration; `None` = disabled. + pub pull_request: Option, /// Glob patterns for asset collection. Empty = no asset collection. pub asset_globs: Vec, /// Workflow directory slug (e.g. "smoke" from `fabro/workflows/smoke/`). @@ -3025,8 +3024,7 @@ mod tests { github_app: None, git_author: crate::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -3055,8 +3053,7 @@ mod tests { github_app: None, git_author: crate::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -3093,8 +3090,7 @@ mod tests { github_app: None, git_author: crate::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -3127,8 +3123,7 @@ mod tests { github_app: None, git_author: crate::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -3157,8 +3152,7 @@ mod tests { github_app: None, git_author: crate::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -3200,8 +3194,7 @@ mod tests { github_app: None, git_author: crate::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -3267,8 +3260,7 @@ mod tests { github_app: None, git_author: crate::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -3361,8 +3353,7 @@ mod tests { github_app: None, git_author: crate::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -3398,8 +3389,7 @@ mod tests { github_app: None, git_author: crate::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -3430,8 +3420,7 @@ mod tests { github_app: None, git_author: crate::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -3462,8 +3451,7 @@ mod tests { github_app: None, git_author: crate::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -3498,8 +3486,7 @@ mod tests { github_app: None, git_author: crate::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -3662,8 +3649,7 @@ mod tests { github_app: None, git_author: crate::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -3709,8 +3695,7 @@ mod tests { github_app: None, git_author: crate::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -3774,8 +3759,7 @@ mod tests { github_app: None, git_author: crate::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -3842,8 +3826,7 @@ mod tests { github_app: None, git_author: crate::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -3914,8 +3897,7 @@ mod tests { github_app: None, git_author: crate::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -3975,8 +3957,7 @@ mod tests { github_app: None, git_author: crate::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -4037,8 +4018,7 @@ mod tests { github_app: None, git_author: crate::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -4074,8 +4054,7 @@ mod tests { github_app: None, git_author: crate::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -4107,8 +4086,7 @@ mod tests { github_app: None, git_author: crate::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -4139,8 +4117,7 @@ mod tests { github_app: None, git_author: crate::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -4184,8 +4161,7 @@ mod tests { github_app: None, git_author: crate::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -4266,8 +4242,7 @@ mod tests { github_app: None, git_author: crate::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -4301,8 +4276,7 @@ mod tests { github_app: None, git_author: crate::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -4338,8 +4312,7 @@ mod tests { github_app: None, git_author: crate::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -4380,8 +4353,7 @@ mod tests { github_app: None, git_author: crate::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -4420,8 +4392,7 @@ mod tests { github_app: None, git_author: crate::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -4457,8 +4428,7 @@ mod tests { github_app: None, git_author: crate::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -4555,8 +4525,7 @@ mod tests { github_app: None, git_author: crate::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -4768,8 +4737,7 @@ mod tests { github_app: None, git_author: crate::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -4808,8 +4776,7 @@ mod tests { github_app: None, git_author: crate::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -4855,8 +4822,7 @@ mod tests { github_app: None, git_author: crate::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -4942,8 +4908,7 @@ mod tests { github_app: None, git_author: crate::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -5040,8 +5005,7 @@ mod tests { github_app: None, git_author: crate::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -5115,8 +5079,7 @@ mod tests { github_app: None, git_author: crate::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -5177,8 +5140,7 @@ mod tests { github_app: None, git_author: crate::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -5240,8 +5202,7 @@ mod tests { github_app: None, git_author: crate::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -5399,8 +5360,7 @@ mod tests { github_app: None, git_author: crate::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; diff --git a/lib/crates/fabro-workflows/src/handler/manager_loop.rs b/lib/crates/fabro-workflows/src/handler/manager_loop.rs index a581064..8890e2f 100644 --- a/lib/crates/fabro-workflows/src/handler/manager_loop.rs +++ b/lib/crates/fabro-workflows/src/handler/manager_loop.rs @@ -156,8 +156,7 @@ impl Handler for SubWorkflowHandler { .map(|gs| gs.git_author.clone()) .unwrap_or_default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: true, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; diff --git a/lib/crates/fabro-workflows/src/pull_request.rs b/lib/crates/fabro-workflows/src/pull_request.rs index 1cfa742..5798b17 100644 --- a/lib/crates/fabro-workflows/src/pull_request.rs +++ b/lib/crates/fabro-workflows/src/pull_request.rs @@ -355,7 +355,7 @@ pub async fn maybe_open_pull_request( goal: &str, diff: &str, model: &str, - draft: bool, + pr_config: &crate::cli::run_config::PullRequestConfig, run_dir: &Path, ) -> Result, String> { if diff.is_empty() { @@ -379,7 +379,7 @@ pub async fn maybe_open_pull_request( head_branch, &title, &body, - draft, + pr_config.draft, ) .await?; @@ -904,6 +904,10 @@ mod tests { app_id: "123".to_string(), private_key_pem: "unused".to_string(), }; + let pr_config = crate::cli::run_config::PullRequestConfig { + enabled: true, + draft: false, + }; let result = maybe_open_pull_request( &creds, "https://github.com/owner/repo.git", @@ -912,7 +916,7 @@ mod tests { "Fix bug", "", "claude-sonnet-4-20250514", - false, + &pr_config, tmp.path(), ) .await; diff --git a/lib/crates/fabro-workflows/tests/daytona_integration.rs b/lib/crates/fabro-workflows/tests/daytona_integration.rs index 948181b..4e31254 100644 --- a/lib/crates/fabro-workflows/tests/daytona_integration.rs +++ b/lib/crates/fabro-workflows/tests/daytona_integration.rs @@ -403,8 +403,7 @@ async fn daytona_pipeline_artifact_offload_and_sync() { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -601,8 +600,7 @@ async fn daytona_git_checkpoint_remote_emits_events() { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -790,8 +788,7 @@ async fn daytona_parallel_git_branching_e2e() { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -1170,8 +1167,7 @@ async fn daytona_git_checkpoint_with_shadow_branch() { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -1313,8 +1309,7 @@ async fn daytona_asset_collection() { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -1571,8 +1566,7 @@ async fn daytona_git_push_run_branch_to_origin() { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; diff --git a/lib/crates/fabro-workflows/tests/integration.rs b/lib/crates/fabro-workflows/tests/integration.rs index db7af73..1c4cea9 100644 --- a/lib/crates/fabro-workflows/tests/integration.rs +++ b/lib/crates/fabro-workflows/tests/integration.rs @@ -205,8 +205,7 @@ async fn end_to_end_linear_pipeline() { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -351,8 +350,7 @@ async fn end_to_end_branching_pipeline() { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -479,8 +477,7 @@ async fn end_to_end_human_gate_pipeline() { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -597,8 +594,7 @@ async fn goal_gate_routes_to_retry_target_on_failure() { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -725,8 +721,7 @@ async fn goal_gate_routes_to_retry_target_when_present() { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -1044,8 +1039,7 @@ async fn retry_on_failure_then_succeed() { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -1126,8 +1120,7 @@ async fn pipeline_with_many_nodes() { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -1459,8 +1452,7 @@ async fn smoke_test_with_mock_codergen_backend() { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -1567,8 +1559,7 @@ async fn end_to_end_parallel_fan_out_fan_in() { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -1687,8 +1678,7 @@ async fn resume_from_checkpoint_completes_pipeline() { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -1793,8 +1783,7 @@ async fn resume_from_checkpoint_preserves_goal_gate_outcomes() { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -1843,8 +1832,7 @@ async fn graph_goal_in_context() { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -1885,8 +1873,7 @@ async fn event_streaming_lifecycle() { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -1971,8 +1958,7 @@ async fn context_flow_between_stages() { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -2030,8 +2016,7 @@ async fn tool_handler_e2e() { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -2106,8 +2091,7 @@ async fn auto_approve_interviewer_e2e() { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -2149,8 +2133,7 @@ async fn codergen_without_backend_simulated() { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -2260,8 +2243,7 @@ async fn branching_loop_back_on_failure() { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -2351,8 +2333,7 @@ async fn human_gate_loops_back() { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -2415,8 +2396,7 @@ async fn scenario_ship_a_feature() { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -2507,8 +2487,7 @@ async fn scenario_parallel_expert_review() { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -2597,8 +2576,7 @@ async fn scenario_node_retries_on_retry_status() { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -2665,8 +2643,7 @@ async fn scenario_loop_restart_resets_context() { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -2739,8 +2716,7 @@ async fn scenario_bug_triage_router() { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -2804,8 +2780,7 @@ async fn scenario_crash_recovery() { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -2919,8 +2894,7 @@ async fn manager_loop_stop_condition_satisfied_e2e() { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -3002,8 +2976,7 @@ async fn manager_loop_max_cycles_exceeded_e2e() { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -3144,8 +3117,7 @@ async fn conditional_branching_success_fail_paths() { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -3203,8 +3175,7 @@ async fn edge_selection_condition_match_wins_over_weight() { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -3256,8 +3227,7 @@ async fn edge_selection_weight_breaks_ties() { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -3301,8 +3271,7 @@ async fn edge_selection_lexical_tiebreak() { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -3365,8 +3334,7 @@ async fn context_updates_visible_across_nodes() { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -3415,8 +3383,7 @@ async fn stylesheet_applies_model_override() { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -3477,8 +3444,7 @@ async fn custom_handler_registration_and_execution() { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -3554,8 +3520,7 @@ async fn integration_smoke_plan_implement_review_done() { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -3664,8 +3629,7 @@ async fn manager_loop_runs_child_engine_e2e() { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -3805,8 +3769,7 @@ async fn manager_loop_context_flows_e2e() { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -3885,8 +3848,7 @@ async fn manager_loop_child_dotfile_e2e() { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -4005,8 +3967,7 @@ async fn graph_merge_e2e_through_engine() { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -4162,8 +4123,7 @@ async fn fidelity_default_is_compact() { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -4225,8 +4185,7 @@ async fn fidelity_graph_default_applied() { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -4284,8 +4243,7 @@ async fn fidelity_node_overrides_graph_default() { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -4349,8 +4307,7 @@ async fn fidelity_edge_overrides_node_and_graph() { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -4404,8 +4361,7 @@ async fn fidelity_full_produces_empty_preamble() { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -4469,8 +4425,7 @@ async fn fidelity_truncate_preamble_minimal() { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -4547,8 +4502,7 @@ async fn fidelity_summary_low_mode() { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -4620,8 +4574,7 @@ async fn fidelity_summary_medium_mode() { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -4693,8 +4646,7 @@ async fn fidelity_summary_high_mode() { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -4759,8 +4711,7 @@ async fn fidelity_full_sets_thread_id_in_context() { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -4836,8 +4787,7 @@ async fn fidelity_full_nodes_share_thread_id() { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -4923,8 +4873,7 @@ async fn fidelity_resume_degrades_full_to_summary_high() { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -5026,8 +4975,7 @@ async fn fidelity_resume_degrade_only_affects_first_hop() { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -5116,8 +5064,7 @@ async fn fidelity_resume_no_degrade_when_not_full() { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -5164,8 +5111,7 @@ async fn fidelity_stored_in_checkpoint_context() { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -5256,8 +5202,7 @@ async fn fidelity_precedence_multi_node_pipeline() { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -5330,8 +5275,7 @@ async fn fidelity_compact_preamble_includes_completed_stages_and_context() { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -5412,8 +5356,7 @@ async fn fidelity_summary_low_excludes_context_values_in_pipeline() { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -5486,8 +5429,7 @@ async fn fidelity_summary_low_excludes_context_values_in_pipeline() { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -5563,8 +5505,7 @@ async fn fidelity_thread_id_fallback_to_previous_node_in_pipeline() { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -5623,8 +5564,7 @@ async fn fidelity_thread_id_from_node_class_in_pipeline() { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -5686,8 +5626,7 @@ async fn fidelity_edge_thread_id_override_in_pipeline() { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -5750,8 +5689,7 @@ async fn fidelity_full_without_explicit_thread_id_uses_previous_node() { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -5824,8 +5762,7 @@ async fn fidelity_from_parsed_dot_pipeline() { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -5878,8 +5815,7 @@ async fn fidelity_checkpoint_roundtrip_preserves_fidelity() { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -5954,8 +5890,7 @@ async fn fidelity_node_thread_id_overrides_edge_thread_id_in_pipeline() { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -6047,8 +5982,7 @@ async fn fidelity_resume_preserves_context_values_across_checkpoint() { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -6265,8 +6199,7 @@ mod real_llm { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -6386,8 +6319,7 @@ mod real_llm { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -6532,8 +6464,7 @@ mod real_llm { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -6646,8 +6577,7 @@ mod real_llm { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -6749,8 +6679,7 @@ async fn human_gate_freeform_only_routes_text() { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -6887,8 +6816,7 @@ async fn human_gate_freeform_with_fixed_choice_match() { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -7009,8 +6937,7 @@ async fn human_gate_freeform_fallback_on_unmatched_text() { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -7145,8 +7072,7 @@ async fn human_gate_freeform_sets_allow_freeform_on_question() { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -7261,8 +7187,7 @@ async fn human_gate_without_freeform_sets_allow_freeform_false() { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -7528,8 +7453,7 @@ fn make_run_config(dir: &std::path::Path) -> RunConfig { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, } @@ -8671,8 +8595,7 @@ async fn arc_e2e_with_real_llm() { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -8806,8 +8729,7 @@ async fn run_fidelity_prompt_pipeline(fidelity: &str) -> String { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -9012,8 +8934,7 @@ async fn large_context_values_are_offloaded_to_artifact_store() { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -9239,8 +9160,7 @@ async fn artifact_pointers_rewritten_for_remote_sandbox() { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -9376,8 +9296,7 @@ async fn node_dir_uses_visit_count_on_revisit() { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -10357,8 +10276,7 @@ async fn full_pipeline_with_cli_backend_node() { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -10495,8 +10413,7 @@ async fn stylesheet_backend_property_routes_to_cli() { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -10783,8 +10700,7 @@ async fn git_checkpoint_host_emits_events_and_diff_patch() { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -10976,8 +10892,7 @@ async fn git_checkpoint_host_writes_shadow_branch() { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -11177,8 +11092,7 @@ async fn parallel_git_branching_host_e2e() { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -11443,8 +11357,7 @@ async fn git_checkpoint_host_skips_empty_diff_patch() { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -11828,8 +11741,7 @@ async fn e2e_circuit_breaker_deterministic_self_loop() { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -11882,8 +11794,7 @@ async fn e2e_circuit_breaker_custom_limit() { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -11929,8 +11840,7 @@ async fn e2e_circuit_breaker_ignores_transient_failures() { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -11983,8 +11893,7 @@ async fn e2e_circuit_breaker_different_reasons_separate_counters() { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -12030,8 +11939,7 @@ async fn e2e_circuit_breaker_loop_restart() { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -12099,8 +12007,7 @@ async fn e2e_failure_signature_persisted_in_context() { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -12170,8 +12077,7 @@ async fn e2e_failure_signature_hint_overrides_reason_in_context() { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -12233,8 +12139,7 @@ async fn e2e_signature_maps_persist_in_checkpoint() { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -12367,8 +12272,7 @@ async fn e2e_circuit_breaker_emits_events_before_abort() { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -12441,8 +12345,7 @@ async fn e2e_circuit_breaker_does_not_fire_below_limit() { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -12544,8 +12447,7 @@ async fn e2e_circuit_breaker_multi_stage_impl_verify_cycle() { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -12648,8 +12550,7 @@ async fn e2e_loop_restart_blocked_for_deterministic_failure() { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -12695,8 +12596,7 @@ async fn e2e_loop_restart_blocked_for_structural_failure() { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -12742,8 +12642,7 @@ async fn e2e_loop_restart_blocked_for_budget_exhausted_failure() { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -12789,8 +12688,7 @@ async fn e2e_loop_restart_blocked_for_canceled_failure() { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -12833,8 +12731,7 @@ async fn e2e_loop_restart_blocked_for_compilation_loop_failure() { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -12881,8 +12778,7 @@ async fn e2e_loop_restart_allowed_for_transient_infra() { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -12992,8 +12888,7 @@ async fn e2e_stall_watchdog_triggers_from_dot_parsed_pipeline() { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -13055,8 +12950,7 @@ async fn e2e_stall_watchdog_kept_alive_by_handler_events() { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -13108,8 +13002,7 @@ async fn e2e_stall_watchdog_disabled_with_zero_timeout() { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -13180,8 +13073,7 @@ async fn e2e_stall_watchdog_with_explicit_timeout_override() { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -13318,8 +13210,7 @@ async fn asset_collection_local_sandbox_success() { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: vec!["test-results/**".to_string()], workflow_slug: None, }; @@ -13434,8 +13325,7 @@ async fn asset_collection_local_sandbox_on_failure() { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: vec!["test-results/**".to_string()], workflow_slug: None, }; @@ -13532,8 +13422,7 @@ async fn asset_collection_docker_sandbox() { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, }; @@ -13608,8 +13497,7 @@ async fn wait_timer_e2e() { github_app: None, git_author: fabro_workflows::git::GitAuthor::default(), base_branch: None, - pull_request_enabled: false, - pull_request_draft: false, + pull_request: None, asset_globs: Vec::new(), workflow_slug: None, };