- The FPS check multiplied the current rate by the threshold percentage
without dividing by 100 (fps * 90 < baseline), so it only fired below
~1% of the baseline — never. It now restarts below fps_threshold% of
the baseline (90 when unset, as the fanout supervisor does).
- Priority backup probed every other source, including lower-ranked ones:
a stream on backup B moved down to C while the primary was still out.
Only sources ranked above the current one are considered.
- An on-demand start whose source cannot be probed now honours
on_demand_failure_exit instead of re-probing until the cron stops it.
- A stale force-source signal naming a missing index is ignored.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>