diff --git a/src/agent/oneshot.rs b/src/agent/oneshot.rs index 6ab79ca..2332d27 100644 --- a/src/agent/oneshot.rs +++ b/src/agent/oneshot.rs @@ -474,9 +474,13 @@ pub fn run_one_agent( // Bail check: if the agent defines a bail script, run it between steps. let bail_script = def.bail.as_ref().map(|name| defs::agents_dir().join(name)); let state_dir_for_bail = state_dir.clone(); + // Find our own pid file so we can pass it to the bail script + let our_pid = std::process::id(); + let our_pid_file = format!("pid-{}", our_pid); let bail_fn = move |step_idx: usize| -> Result<(), String> { if let Some(ref script) = bail_script { let status = std::process::Command::new(script) + .arg(&our_pid_file) .current_dir(&state_dir_for_bail) .status() .map_err(|e| format!("bail script {:?} failed: {}", script, e))?;