mirror of
https://github.com/jmcorgan/fips.git
synced 2026-08-05 14:14:39 +00:00
evaluate_parent no longer reads the injected clock: it returns a ParentEval of Mandatory, Discretionary, or None, and the flap/hold-down veto is applied at the edge via a new TreeState::is_switch_suppressed(now_ms), gating only the discretionary arm. classify_announce/classify_periodic take the pre-computed switch_suppressed bool instead of now_ms, so the whole classify ladder is clock-free; the shell callers (tree announce/periodic re-eval, MMP first-RTT re-eval, handle_parent_lost) compute the veto verdict. The no-coords parent case stays discretionary (veto-gated) exactly as before. Behavior unchanged; the veto tests now assert the moved responsibility.