Archive P1 iteration workflow and manual checkpoint

This commit is contained in:
Emil
2026-09-24 03:45:18 +03:00
parent d7a7a7c3a4
commit 822b44f1d7
201 changed files with 100058 additions and 29 deletions
+33 -1
View File
@@ -1,6 +1,6 @@
# Faset Engine — архитектура
Редакция 1.2 · 23 сентября 2026 · **MVP принят; реализация P2 описана отдельно от исходных решений**.
Редакция 1.3 · 24 сентября 2026 · **MVP принят; реализация P1/P2 описана отдельно от исходных решений**.
Этот файл фиксирует решения пользователя. **Принято** означает выбранное направление реализации, а не автоматически завершённую возможность движка. Работающий код, выполненные проверки и текущие ограничения перечислены в [журнале реализации](IMPLEMENTATION.md). Этапы до MVP и после него, зависимости работ и критерии готовности находятся в [PLAN.md](../PLAN.md).
@@ -111,6 +111,37 @@ Development и release Player содержат runtime, выбранные иг
Критерии [плана](../PLAN.md) включают цикл сцена → Inspector → MCP authoring edit → Undo → save → build → отдельный Player, повторный импорт GLB с сохранением overrides, lifecycle/handle tests и запуск на обеих ОС без Editor/Blender/MCP/SDK. Выполненные проверки и незакрытые условия перечислены в [журнале реализации](IMPLEMENTATION.md); наличие теста само по себе не означает прохождения на обеих ОС.
## 10. P1 — проверяемая итерация gameplay
Для native-сборки источником истины остаются CMake/Ninja и их dependency graph.
BuildService снимает неизменяемый snapshot `Scripts`, отделяет Debug от Release и
запоминает версионированный fingerprint рецепта, исходников, Lua-деклараций,
toolchain, шейдерных и runtime-входов. Повторное использование schema/package
разрешено лишь после проверки полного manifest и схемы; испорченная или устаревшая
генерация не выдаётся за cache hit. Переключение указателя на успешную генерацию
атомарно; сбой сборки оставляет предыдущую доступной, но Inspector помечает
метаданные устаревшими. Экспорт отдельно проверяет asset generations.
Структурированные сообщения компилятора/Lua дополняют сырой лог. Для исходников
проекта Editor и MCP вызывают один `faset_source_open` с относительным путём и
позициями; внешний редактор запускается аргументами без shell. Четыре стартовых
проекта комбинируют C++/Lua и 2D/3D. C++ остаётся rebuild-and-restart, а Lua
development reload проверяет candidate и перезапускает script/world state, не
сохраняя произвольное runtime-состояние.
Autosave относится только к именованным dirty сценам Editor после двух секунд
покоя. Он использует ревизию документа и прежний disk-hash conflict check, не
перезаписывает внешний файл и не создаёт Undo-операцию. Неназванная сцена требует
Save As; recovery journal работает независимо от autosave. Статусы видны в UI и
через Editor MCP. Player и экспортная игра по-прежнему не имеют MCP.
Измерения P1 разделяют Debug-время итераций, offscreen первый кадр и старый
Release reference baseline точных демо. Исходный отчёт, raw-профили и отдельное
дополнение о версиях/хешах исполняемых инструментов находятся в
[датированном dossier](validation/p1-iteration-2026-09-24/README.md). Большая
синтетическая сцена выявляет стоимость CPU simulation/snapshot; её время нельзя
переносить на 2D/3D демо или выдавать за обещание кадровой частоты.
## История решений
- **17.09.2026:** выбраны имя Faset Engine, Linux/Windows desktop 2D/3D, ручная работа и MCP, интеграция с Blender, Box2D и Box3D; подготовлены исследования.
@@ -118,5 +149,6 @@ Development и release Player содержат runtime, выбранные иг
- **18.09.2026:** утверждены процессы и linkage, явная metadata registration/schema export, JSON/binary formats, вложенные шаблоны/sparse overrides, lifecycle, фиксированный tick и последовательный scheduler; граница MCP ограничена Editor/headless authoring services.
- **18.09.2026:** английский принят основным языком интерфейса, диагностик и публичного API; уточнена граница прямых Vulkan-вызовов внутри собственного backend.
- **23.09.2026:** после принятого MVP выполнен P2 GPU visibility/LOD на Linux reference GPU; direct renderer сохранён как начальный режим и эталон, ограничения и измерения вынесены в отдельный [протокол](studies/19-p2-gpu-visibility-acceptance.md).
- **24.09.2026:** P1 итерация фиксирует проверяемое повторное использование schema/package, структурированную диагностику, стартовые C++/Lua проекты, безопасный autosave и измерительный протокол без C++ hot reload.
Реализация идёт по [PLAN.md](../PLAN.md). Последующие изменения принятых контрактов фиксируются здесь с причиной и способом проверки.