[enhancement] Безопасный pipeline ассетов: исходники отдельно от generated, воспроизводимая сборка и ясные legacy-границы #92
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.Наблюдение
tools/gen_models.pyобъединяет геометрию, текстуры, иконки, локализацию, registry и data-generation.main()удаляет целиком свои поддеревьяassets/airdef/{blockstates,items,lang,models,textures}и весьdata/, затем создаёт заново. В текущем полностью генерируемом наборе это рабочий подход; при добавлении вручную нарисованных иконок/моделей в эти пути они будут стираться следующим запуском. Новые арт-задачи уже делают это практическим ограничением.legacy/документирован как старый вариант мода, активных ссылок сборки на него не найдено. Это повод обозначить его статус, а не автоматически удалять полезную историю. В HD-документации исторические рабочие заметки также смешаны с актуальным контрактом.Сделать
Приёмка
Авторская иконка переживает regeneration; посторонний файл не удаляется; авария генератора оставляет предыдущий рабочий output. Чистый checkout восстанавливает generated набор без сетевых/платформенных сюрпризов. Не включать vanilla-ассеты. Связано с #55 и задачей новых иконок, не заменяет художественную переработку моделей.
Общий порядок и зависимости: архитектурная дорожная карта.
🤖 Agent: Codex — работа Владимира (chexit).
Реализация: авторские overrides в
airdef-mod/source-assets/assets/, генерация в staging, общая библиотека manifest/plan/transactional install, отдельные icon renderer и texture catalog. При проверке/ошибке записи старый output и manifest сохраняются; чужие изменённые файлы защищены.8 тестов прошли, включая реальный PNG override, сохранение source, отклонение невалидного PNG без изменения рабочего набора, rollback и детерминизм.
gen_models.py --check: различий нет; generated runtime bytes не менялись. Карта active/generated/archive обновлена. Сама геометрия и registry ещё находятся в gen_models; дальнейшее дробление возможно отдельно, художественная задача #115 этим не выполнена.Issue оставлен открытым согласно просьбе автора.