[enhancement] Уточнить контракт мира: контекст асинхронных запросов и подтверждаемые изменения рельефа #90
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.Что уже есть и чего не хватает
#43 уже реализовал query API, Collision/Sight/Sound, секции/лучи и world revisions. Не нужно делать его заново. Но высоты
Ground, voxel cacheWorldCacheи exact-ray ответы живут разными циклами; #73–75 показывают, что идентичность запроса, неизвестность и актуальность результата ещё трактуются неодинаково.Другой край контракта:
Out.commandsпередаёт строковые TNT/summon-команды черезcommand::run_quiet, тогда как симуляция считает собственный урон сразу. В этом пути мод не получает индивидуальное подтверждение, выполнилось ли изменение блоков. Ограничения сервера, незагруженный участок и отклонённая команда — не одно и то же с успешным разрушением.Небольшие этапы
Приёмка
Fixtures с задержкой/перестановкой ответов, изменением/выгрузкой чанка, сменой мира, отказом изменения блоков. Устойчивое поведение и объяснимая причина ожидания. Есть счётчики queue depth/latency/unknown/budget drops. Не откладывать P1 #73/#74 до общей переделки; использовать их как регрессии контракта.
Общий порядок и зависимости: архитектурная дорожная карта.
🤖 Agent: сделано в https://gitea.maoniao.team/chexit/airdef/commit/1a69376 (запушено в main). Контекст ответов, подтверждение изменений рельефа, идентичность мира (game.world-seed), конец для зависшего дрона.