CI / check (push) Failing after 10m54s
The jitter buffer's gap path fed the LOWEST buffered packet to decode_fec regardless of position. Opus in-band FEC in packet N carries a copy of frame N-1 and nothing else, so that reconstruction is only correct when the smallest survivor is exactly next+1 (single loss). On burst loss it spliced a later frame's audio into the wrong slot — worse than concealment. Gate FEC on adjacency (new fec_covers_gap(), wraparound-aware); everything else falls back to plain PLC. Two new tests: the gate itself, and a burst-loss test proven to bite — it compares bit-exact against a twin decoder and fails against the old unconditional-FEC behavior (checked by mutation). Fixes finding 3 of the 2026-07-16 full-codebase review. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>