обновление

This commit is contained in:
2026-09-05 13:02:03 +04:00
parent bc4440562d
commit 1fd87b3132
10 changed files with 22 additions and 52 deletions
+2 -2
View File
@@ -687,7 +687,7 @@ SKYBOX_MODEL ...
- skybox/liquid не стоит напрямую переносить как готовый код.
По WoWee (reviewed update `626243e937fb93965fa583a6507ed5a1aa7dda4b`
`8456c236b57140e98667d6d8188f5cd1cc226daf`, 2026-08-12):
`607ea3b8369851014721416293f8e95dfbe64eec`, 2026-09-05):
- сильнейший M04 signal — не новый renderer целиком, а узкие regression fixtures:
M2 global-sequence/color-alpha sampling, `$FSD` event timing, 8x8 liquid masks,
@@ -707,7 +707,7 @@ SKYBOX_MODEL ...
идеи и tests, не копируем/не вендорим код без legal review.
По Benilla (pinned research commit
`9f3de200fb4a239809acd3641671d63146098a91`):
`bc1a2428dd7e00ca8abbfb8f0bf53750dae7b123`):
- полезна граница `world renderer -> asset/formats` без зависимости от game/UI;
- M2 animation разделяет selection policy и renderer machinery: pose sampling,
+2 -2
View File
@@ -22,7 +22,7 @@ Reference-код используется для исследования фор
### WoWee
- Исследование обновлено до `master` commit `8456c236b57140e98667d6d8188f5cd1cc226daf` (2026-08-12), относительно прежнего pin `626243e937fb93965fa583a6507ed5a1aa7dda4b`.
- Исследование обновлено до `master` commit `607ea3b8369851014721416293f8e95dfbe64eec` (2026-09-05), относительно прежнего reviewed pin `8456c236b57140e98667d6d8188f5cd1cc226daf`.
- `reference/WoWee/docs/architecture.md` — разделение renderer/network/game/UI/pipeline.
- `reference/WoWee/tools/editor/FORMAT_SPEC.md` — open formats, coordinates, collision, packaging и SQL export.
- `reference/WoWee/TESTING.md` — единая точка запуска тестов, fixtures, sanitizers и CI discipline.
@@ -59,7 +59,7 @@ Reference-код используется для исследования фор
### Benilla
- [`reference/benilla`](../reference/benilla) ([upstream](https://github.com/samwhosung/benilla)) — pinned research submodule с независимым клиентом WoW 1.12.1 build 5875 на Rust/Bevy; исследование OpenWC зафиксировано на commit `9f3de200fb4a239809acd3641671d63146098a91`.
- [`reference/benilla`](../reference/benilla) ([upstream](https://github.com/samwhosung/benilla)) — pinned research submodule с независимым клиентом WoW 1.12.1 build 5875 на Rust/Bevy; исследование OpenWC зафиксировано на commit `bc1a2428dd7e00ca8abbfb8f0bf53750dae7b123`.
- Renderer references: M2 pose/palette animation, global sequences, material/pass ordering, общий dynamic-effect stream, particles, model particles, ribbons, WMO portal visibility, lighting, sky/weather и streaming.
- UI references: отдельный engine-free TOC/FrameXML/Lua core, template/layout/widget model, deterministic event/`OnUpdate` ordering, legacy+modern handler arguments, sandbox, SavedVariables и большой набор compatibility tests.
+2 -1
View File
@@ -64,6 +64,7 @@ Decision/ADR:
- **Name / URL:** [WoWee](https://github.com/WoWee-Dev/WoWee), локально `reference/WoWee`.
- **Status:** `REFERENCE`; код не подключается как dependency и не вендорится.
- **Reviewed update:** `master` от `626243e937fb93965fa583a6507ed5a1aa7dda4b` до `8456c236b57140e98667d6d8188f5cd1cc226daf` (2026-08-12): 2557 commits. Raw diff содержит 1622 files, 164940 additions и 1595923 deletions, но объём deletions в основном создают удалённые generated SQL/data/build artifacts; полезный signal сосредоточен в renderer, UI/FrameXML, pipeline и tests.
- **Checkout refresh:** текущий upstream checkout — `607ea3b8369851014721416293f8e95dfbe64eec` (2026-09-05). Это обновление pins не является новой fidelity evaluation; релевантные изменения требуют отдельного bounded review перед использованием.
- **Renderer findings:** новый общий M2 track sampler отделяет global-sequence time от animation sequence и добавляет finite-value guards, но Hermite/Bezier пока линейно аппроксимируются. Централизованный M2+skin/external-`.anim` loader и selective animation loading полезны как pattern для границы parser/resolver. Новые water-mask и water-surface-grid tests фиксируют LSB-first 8x8 chunk masks, solid fallback, rotated WMO liquid projection, inclusive far edge и degenerate axes. Vertex-layout tests сверяют CPU declarations с shader inputs. GPU lifetime/deferred-release решения полезны концептуально, но Vulkan implementation не переносится в Godot.
- **Animation/effects evidence:** WotLK asset tests покрывают color/alpha tracks, независимый wrap global sequences и `$FSD` footstep events. Отсутствующие private assets в части тестов дают `SUCCEED`, поэтому зелёный run не доказывает, что fixture реально исполнялся. Particle/ribbon delta в основном добавляет sampling, batching, descriptor reuse и diagnostics; flame/smoke/ribbon поведение содержит эвристики и не заменяет build-12340 capture oracle. Для архитектуры shared effect stream Benilla остаётся более сильным secondary reference.
- **Placement warning:** WoWee прямо оставляет rotation order наклонённых doodad placements нерешённым; имеющийся test различает только upright yaw. OpenWC не меняет calibrated transforms без tilted `MDDF`/`MODF` fixture из build 12340.
@@ -99,7 +100,7 @@ Decision/ADR:
- **Name / URL:** [samwhosung/benilla](https://github.com/samwhosung/benilla), локально `reference/benilla`.
- **Status:** `REFERENCE`; исходники доступны как pinned research submodule, но не подключены к build/runtime как dependency и не вендорятся.
- **Pinned research revision:** `9f3de200fb4a239809acd3641671d63146098a91` (проверен 2026-08-12). Репозиторий публикуется автором как squashed snapshots из private tree, поэтому при повторном исследовании revision фиксируется заново.
- **Pinned research revision:** `bc1a2428dd7e00ca8abbfb8f0bf53750dae7b123` (проверен 2026-09-05). Репозиторий публикуется автором как squashed snapshots из private tree, поэтому при повторном исследовании revision фиксируется заново.
- **Problem studied:** полный независимый клиент WoW 1.12.1 build 5875 на Rust/Bevy, включая streamed world renderer, M2 animation/materials, WMO portal visibility, liquids/sky/weather, particles/ribbons/spell visuals и собственный TOC/FrameXML/Lua UI runtime.
- **Planned boundary:** использовать только как независимый источник алгоритмов, decomposition, diagnostics и test cases. OpenWC сохраняет свои `WorldRenderFacade`, Godot main-thread/finalization boundaries, `LuaRuntime`, immutable UI view models/intents и build-12340 contracts; прямой Bevy/ECS или Rust-type bridge не вводится.
- **Useful renderer source map:** `crates/benilla-world/src/model_render*`, `rig_anim*`, `rig_palette*`, `particles*`, `ribbons.rs`, `wmo_portal*`, `lighting*`, `weather*`, `terrain_stream*` и `shaders/wow_effect.wgsl`; format-side M2 animation/particle/ribbon tracks находятся в `crates/benilla-formats/src/models/anim.rs`, `particles.rs` и `ribbons.rs`.
+4 -4
View File
@@ -9,19 +9,19 @@ not generate `.import` sidecars inside nested reference repositories.
## Git reference revisions
Remote branches were fetched with pruning and the checked-out default branches
were fast-forwarded on 2026-08-12. The parent repository pins the exact commits
were fast-forwarded on 2026-09-05. The parent repository pins the exact commits
through gitlinks; `.gitmodules` records the branch used for an intentional future
`git submodule update --remote`. Inspect local state before advancing the parent
gitlink pins; checked-out branches in this refresh used `git pull --ff-only`.
| Reference | Canonical branch | Pinned commit |
| --- | --- | --- |
| `open-realm` | `main` | `550973e5172e13f8d0178cbeb69611d5af68935c` |
| `open-realm` | `main` | `950a1e8c1343a6e2139cc448f779cb2957a8d3f8` |
| `whoa` | `master` | `ea1345636045635ac601b7d525eb0c38c6c0f6dd` |
| `WoWee` | `master` | `8456c236b57140e98667d6d8188f5cd1cc226daf` |
| `WoWee` | `master` | `607ea3b8369851014721416293f8e95dfbe64eec` |
| `WowUnreal` | `main` | `c2a4b9827b2e7672e799085c5bf631d37c4ca5d3` |
| `wow.export` | `main` | `c2fd7bde36a712be78a5da896c995b84fbfa2545` |
| `benilla` | `main` | `9f3de200fb4a239809acd3641671d63146098a91` |
| `benilla` | `main` | `bc1a2428dd7e00ca8abbfb8f0bf53750dae7b123` |
| `blender-wow-studio/.../pywowlib` | `master` | `55276dc5c2195da7fe136638a2a59716622f8c65` |
`blender-wow-studio-3.4-1.1.0_Experimental` and `noggit-red` are tracked
+7 -38
View File
@@ -8,19 +8,19 @@
Параллельная командная работа выполняется по [`../docs/TEAM_WORKFLOW.md`](../docs/TEAM_WORKFLOW.md): отдельные worktrees, claims, exclusive paths, contract-first и интегратор milestone.
## Current target
## Текущая цель
`M04` — [04-renderer-fidelity.md](04-renderer-fidelity.md)
Одновременно `ACTIVE` может быть только одна цель. Следующая цель становится `ACTIVE` после появления валидной `OPENWC_TARGET_DONE` метки у предыдущей.
`M04` — [04-renderer-fidelity.md](04-renderer-fidelity.md)
*Начало фазы выполнения:* `YYYY-MM-DD`
Одновременно `АКТИВНАЯ` может быть только одна цель. Следующая цель становится `АКТИВНОЙ` после появления валидной метки `OPENWC_TARGET_DONE` у предыдущей.
Статусные метки применяются только к исполняемым файлам `targets/[0-9][0-9]-*.md`. `DEVELOPMENT_ROADMAP.md` и `targets/roadmap/` являются нормативной декомпозицией, но не создают параллельную систему статусов.
## Definition of fidelity 1:1
## Определение фидели 1:1
`1:1` означает совпадение наблюдаемого поведения с оригинальным клиентом WoW 3.3.5a build 12340 для выбранного сценария:
- wire protocol и update fields;
- жилл протокол и обновляемые поля;
- игровые состояния и переходы;
- координаты, timing и server authority;
- UI/Lua/FrameXML semantics;
@@ -55,35 +55,4 @@ M08 и M09 могут выполняться параллельными кома
`recast-rs` запланирован как optional navigation backend в M06, исследовательский CLI spike и world validation в M08, затем полноценная dungeon navigation validation в M14. Он не блокирует M00–M05 и не считается автоматически совместимым с server `mmaps`.
`rilua` зарегистрирован как Lua 5.1.1 runtime/test-oracle candidate для M13. До compatibility spike он не добавляется как dependency; UI строится через заменяемый `LuaRuntime`, поскольку WoW API, FrameXML, secure actions и taint не входят в готовый VM.
Wowser зарегистрирован как независимый MIT reference для M09 и M13: auth → world protocol lifecycle, binary/data handling, asset pipeline и общий client coverage. Его старый browser stack не является кандидатом на интеграцию; полезные решения принимаются только после проверки против build 12340 и server cores.
## Общий quality gate
Каждая цель должна сохранить:
- headless загрузку Godot project;
- затронутые unit/contract/integration tests;
- renderer checkpoints при изменении рендера;
- отсутствие новых нарушений dependency rules;
- обновлённые документы и diagnostics;
- выполнен documentation gate: inline public API, module spec, inputs/outputs и обязательные diagrams;
- выполнен coding gate: явные имена, KISS, отсутствие premature abstraction и необоснованной optimization;
- проходят `tools/verify_coordination.ps1` и `tools/verify_documentation.ps1`;
- воспроизводимость без proprietary данных в Git.
## Evidence format
В конце target-файла агент заполняет:
```text
## Evidence
- Date:
- Revision/worktree:
- Commands:
- Results:
- Fidelity comparison:
- Changed files:
- Remaining risks:
```
`rilua` зарегистрирован как Lua 5.1.1 runtime/test-oracle
+1 -1
View File
@@ -22,7 +22,7 @@ effect buffers, M2 particles/ribbons и WMO portal traversal. Поскольку
проверяется на build-12340 fixture и адаптируется к существующим Godot/M03
ownership, scheduling и finalization boundaries.
WoWee revision `8456c236b57140e98667d6d8188f5cd1cc226daf` добавляет полезные WotLK-oriented
WoWee revision `607ea3b8369851014721416293f8e95dfbe64eec` добавляет полезные WotLK-oriented
test patterns для M2 global sequences/color-alpha tracks, `$FSD` event timing,
liquid masks, rotated WMO water projection и CPU/shader vertex contracts. Они
становятся M04 fixture candidates, но не oracle: Hermite/Bezier sampling и effects
+1 -1
View File
@@ -90,7 +90,7 @@
- Original 3.3.5a FrameXML/Lua extracted from legally owned data is primary behavior corpus.
- `rilua`/PUC-Rio are VM candidates/oracles, not complete WoW UI.
- WoWee revision `8456c236b57140e98667d6d8188f5cd1cc226daf` provides a large
- WoWee revision `607ea3b8369851014721416293f8e95dfbe64eec` provides a large
headless FrameXML/Lua corpus, retained widget-tree/layout tests, a unified
XML-to-Lua `CreateFrame` path, progressive default-UI takeover and static API/
event/handler audits. OpenWC reuses the test taxonomy and staged-handover model,