pub fn observe(recent: &[ActionFingerprint]) -> StallVerdictExpand description
The sample is the recent fingerprints in time order. Only the tail
run of identical prints counts: an older repetition broken by a newer
different action already recovered itself. repeats saturates by
contract — its only consumer compares against the threshold.