Expand description
Pure projection: fleet.resolved + channel context -> RolloutManifest. Producer (nixfleet-release) and CP (re-derivation) share this fn.
Functions§
- compute_
rollout_ id_ for_ channel - CP-side rolloutId for a host on
channel.Ok(None)when the channel has no host with a declared closure. The id is the canonical RFC-0008 §6.3 composite"{channel}@{channel_ref}", deterministic from the projection inputs; producer and CP derive the same string for the same inputs. - current_
rollout_ ids - RolloutIds the current fleet snapshot expects across all channels. Filters
host_dispatch_statesnapshots to “this rev’s rollouts only” so stale Converged rollouts from a previous rev don’t poison gate evaluation. Consumed by polling, the deferrals route, and the per-checkin dispatch pipeline; centralising it keeps the filter consistent. Errored channels are silently dropped (callers log at their site, this fn stays pure). - project_
manifest - Project one channel out of fleet.resolved.
Ok(None)when no host on the channel has aclosureHash.host_setsorted for canonical-byte stability.