Expand description
Rollouts derived-view table (RFC-0008 §6.3). The applier is the sole
writer; every state-mutating method takes an
event_log_seq: Option<i64> so the row’s last_transition_event_log_seq
FK can be populated.
Phase 10a baseline: the rollout reducer (Phase 10b) is unimplemented
and the applier still drives transitions via the legacy PlanAction
path. The new method shape (event_log_seq arg, state enum, target_ref)
is ready; Phase 10b lights up the reducer that drives them through the
RolloutEffect interpretation in the applier.
event_log_seq is NULL-able under the v0.2.1 baseline (RFC-0008 §6.1
item 3 + .claude/plans/v0.2.1-followups.md #1); same as
probe_failures.event_log_seq (RFC-0007 §7.2).
Macros§
Structs§
- Active
Rollout - Gate
Rollouts - Gate-observed view (keeps terminal). Type-disjoint from
UiRolloutsso a wrong query result can’t leak into a gate consumer. - Rollout
Row - Typed projection of a single
rolloutsrow. Replaces the v0.1-eraSupersedeStatus(which only carriedsuperseded_at/superseded_by/terminal_at) with the full row shape so callers can readstatedirectly without ad-hoc boolean derivation. - Rollouts
- UiRollouts
- UI view (drops terminal). Drives
/v1/rollouts, deferrals, metrics.
Type Aliases§
- Rollout
RowTuple 🔒 - Raw tuple shape of a
rolloutsrow, as read by rusqlite. Fields:(rollout_id, channel, target_ref, state, current_wave, opened_event_log_seq, last_transition_event_log_seq, opened_at, terminal_at, superseded_at). Aliased so clippy doesn’t flag the type complexity on the inline closure.