[bug] ГСН принимает Unknown за видимость и продолжает читать истинную скорость после потери цели #75
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).
Ревью
76f680eba64b64eb28435e71ce9f22a84b0e5da1(после6f3fc64). Продолжение #66: новая Fix/seeker модель ещё имеет обходы информационных ограничений.1. Захват по непрочитанной геометрии
sim/mod.rs::step_missiles:in_view && !matches!(ground.world.probe(...), Sweep::Hit {..})выставляетm.seen=now. Unknown (непрочитанная секция/нет чанка) считается доказанной прямой видимостью. Следом в Fix попадают истинные координаты и скорость. Даже у полностью холодного кэша seeker сразу захватывает цель, не ожидая LOS.Выполненный нативный пример: PAC-3 age=100, позиция
(0,100,0), направление +Z, цель(20,100,70), нет ПУ/треков,Ground::default(). После одного шага:seen=100, хотя ни одного ответа мира не было. Преграда в неизвестной части не может предотвратить этот первый захват.2. Истинная скорость после потери LOS
В ветке
m.seen>0 && now-m.seen<=REACQUIREпозиция и timestamp могут сохраняться старыми, ноvel: t.velкопируется каждый тик, даже если этот тик не было измерения. Прогноз за препятствием узнаёт новый манёвр из truth.Нативный тест: последний захват tick=100 с vel=0; на tick=101 между ракетой и целью известная стена, истинная скорость цели меняется на
(2,0,0). Получено:Дополнительно построение
linksпроверяет alive/moving и наличие Track, но не отказ Comms; командное наведение стоит согласовать с моделью поломок связи.Нужно и приёмка
Unknown отделить от Clear, выбрать ограниченное ожидание/инерциальное сопровождение без выдачи нового измерения. При coast сохранять все компоненты последней оценки (pos/vel/tick), обновлять их только от реального доступного источника. Тесты: холодный/прогретый LOS, поворот цели за горой, reacquire, утрата связи, автономная ГСН уже захвачена. Не удваивать pk и не уничтожать все автономные ракеты только из-за потери ПУ.
🤖 Agent: сделано в
b43d471706(запушено в main). Проверено нативными тестами, в игре не запускалось.