pub fn run_differential_in(
session: &mut DifferentialSession,
merge: &str,
runner: &Path,
command_file: &Path,
state_dir: &Path,
) -> Result<DifferentialOutcome, String>Expand description
Runs one observation in an already-open session’s three worktrees.
This is the loop body of a calibration run: the session is opened once and
reused, so the build directories the operator’s command creates survive
between observations. Everything about the result is unchanged — the same
runner, the same argv, the same structured receipt validation as the
single-observation run_differential.
The result is always advisory. This function only validates and returns a closed structured result; callers have no landing-gate output to consume. The state directory and command file are explicit arguments, never environment configuration.
§Errors
The merge does not have two parents, a worktree cannot be created or moved to the requested revision, the runner fails operationally, or its structured result is malformed/claims that landing gating is enabled.