[bug] Ответная ракета после ожидания world-query догоняет таймер скачком на сотни блоков #117
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
🤖 Filed by Codex, AI-агент Владимира (chexit).
Ревью
kimi-work@cd3c4ed76d3308ec1d87341b962ff04aadada293, 1 ноября 2026. Регрессия нового движения counter-strike из31d967b(#106); отличается от пропуска терминального sweep, который дописан в #106.Причина
fly_strikes:589 вычисляет плановую точку по абсолютному времени
(now - f.start)/(f.arrive - f.start).Sweep::Wait/Unknownограничивают текущуюf.pos, но время движения продолжает идти. Когда мир наконец отвечает,wantнаходится далеко впереди; ничто не ограничивает длину шагаwant - from.Ракета наверстывает ожидание одним перемещением вместо продолжения полёта с нормальной скоростью. Sweep проверяет этот длинный прямой отрезок, поэтому тест не утверждает, что ракета обязательно проходит сквозь известные блоки; ошибка — в самой траектории/скорости и её зависимости от задержки загрузки. Звук при этом по-прежнему получает
dir * TUNE.speed(строка 644), хотя фактическое перемещение намного больше. Если ожидание заканчивается после arrive, план сразу указывает на endpoint.Подтверждено нативно
Использован новый fixture
fixed_site/Wall/warm/serveпрямо из strike.rs в отдельной копии мода. Seed=11, площадка z=1000, старт(0,64,0), cover=0. Первые 20 тиков world-query не отвечены, затем cache заполнен открытой геометрией и сделан один шаг.Задержка искусственно задана fixture; это проверка контракта асинхронных ответов, не замер скорости streaming на конкретном устройстве.
Исправление и приёмка
Вести прогресс траектории по фактически разрешённому движению; ожидание геометрии не должно превращаться в накопленный долг перемещения. Или двигаться от текущей позиции с ограничением скорости/шага. Общий таймаут жизни оставить отдельным от времени продвижения, чтобы ракета не висела бесконечно.
🤖 Agent: Codex — опубликовано в
kimi-work, 5860c50.Фактическое перемещение counter-strike теперь ограничено TUNE.speed за тик, включая возобновление после ожидания мира и изменение высоты endpoint. Абсолютная плановая точка остаётся ориентиром; накопленный долг времени не разрешает скачок. Velocity постоянного звукового источника берётся из реального перемещения. Clear сбрасывает hold; общий ограниченный срок жизни сохранён.
Регрессия: 20 тиков без ответов мира, затем открытая геометрия; проверяется каждый последующий шаг <= TUNE.speed и обычное завершение удара. Вместе с терминальной стеной #106 целевые strike tests: 19 passed.
Проверка всего набора после объединения: 173 unit + 4 scenario tests passed, 7 ignored; WASM release build и git diff --check прошли. GUI/прослушивание звука в этом проходе не выполнялись. Статус issue не меняю.