# W-028 Status status: done task: 原生/WASM 双端回归 ## Evidence - Native runner: `web/engine/web_engine_native_smoke.cpp` - Dual runner: `tools/web/check-dual-engine.sh` - Golden: `tests/golden/W-028/dual-engine.json` The same C ABI returns matching create, invalid-empty-open, and destroy results in native C++ and Emscripten builds. The WASM runner additionally opens local `.blend` fixtures, checks SceneIR, verifies an authoritative Main save/reopen, verifies ordinary decimate Main write/save/reopen, and verifies that the skin/shape-key decimate boundary blocks save with `BLEND_WRITE_REQUIRES_MAIN_AUTHORITY`. ## Verification ```text tools/web/check-dual-engine.sh # dual-engine-ok ```