Решили: подтягивание показа к фронту стало свойством плейбека — BattleTapePlayback.CatchUpToLead (по умолчанию true: живой бой и гость по сети). ReplayFilePlayer выключает его: файловый повтор идёт СВОИМИ часами, а расстояние до фронта ему не указ.

Почему: правило «отстал от фронта больше требуемого — подтянись» верно там, где фронт гонит ЧУЖОЙ источник (сим или хост): лишнее отставание значит, что показ провис. В файловом повторе фронт двигаем мы сами — кормим ленту до ViewTick + lookahead + margin, — и отставание от него это ровно тот запас, который мы только что создали. Показ съедал его каждый кадр, прыгая на 30 тиков (подача одного чанка). Замер: 25 секунд боя за секунду реального времени, то есть промотка примерно втридцатеро — дуэль долетала до финала за пару секунд и дальше доигрывала концовку. После правки: 10 с реальных = 9.97 с боя, лаг ленты ровно 330 тиков.

Альтернатива «заявлять лаг заведомо больше фактического отставания» отвергнута: она гасит симптом арифметикой, но остаётся хрупкой — фронт растёт ступенями по чанку, и любой запас однажды окажется мал. Отключать надо само правило, а не подбирать к нему числа.

Сказано: «Нет, проблема еще осталась. Зацени это!» — со снимком, где дуэль показана уже свалкой у края арены (04.08.2026, сессия 78678294).

Грабли: дефект пережил первый заход, потому что тот чинил ветку СТАРТА показа (Advance, первый кадр) — и она честно давала tick 0. Разгон начинался со ВТОРОГО кадра, в другой ветке того же класса, и «показ идёт с середины» выглядело как невылеченный прежний баг. Ловится это только замером хода показа по кадрам (сколько секунд боя показано за секунду реального времени), а не чтением файла: сам .gmrp всё это время был в полном порядке и начинался с нулевого тика.

Владелец правды: Combat/Tape/BattleTapePlayback.cs (CatchUpToLead и обе ветки подтягивания), Net/Tape/ReplayFilePlayer.cs (выключает его в конструкторе). Инвариант «повтор идёт в реальном времени» тестом НЕ закрыт — кандидат в ReplayFilePlayerTests: прогнать N кадров и сверить ViewTick с прошедшим временем.