pub fn step(
state: HostRolloutState,
event: Event,
now: DateTime<Utc>,
policy: &RolloutPolicy,
) -> Result<(HostRolloutState, Vec<Effect>), TransitionError>Expand description
Pure reducer. Same signature on agent and CP-mirror sides.
now is a parameter so tests can advance time deterministically and the
reducer cannot drift from any caller’s notion of “current time” by
hitting a global clock.
policy is borrowed from the signed manifest the caller already verified
(via [nixfleet_reconciler::verify_rollout_manifest]). The reducer cannot
fetch it from a different source.