# WBV2-P1105-000: verify_audio_particle_module - task: WBV2-P1105-000 - parent: WBV2-P1104-000 - status: in_progress - gap: workflow:module_audio_particle - ownerFamily: AUDIO_PARTICLE - targetImplementationClass: LOCAL_EXACT - moduleId: AUDIO_PARTICLE ## 目标 Verify Sound, Speaker and ParticleSettings mutations against authoritative Blender Main with explicit build capability gates. ## 输入与范围 - Source paths: - `blender-5.2.0/source/blender/web_engine/web_engine_main_state.cpp` - `blender-5.2.0/source/blender/web_engine/web_engine_main_state.h` - `blender-5.2.0/source/blender/web_engine/web_engine_api.cpp` - `web/protocol/web-engine.ts` - `web/app/src/workers/web-engine.worker.ts` - `web/app/src/app/App.tsx` - `web/protocol/io-media-commands.ts` - `web/app/src/vendor/blender/web_engine.wasm` - Reused implementation receipts: `tests/golden/WBV2-P33-001/manifest.json`, `tests/golden/WBV2-P33-002/manifest.json` - Implementation and verification entrypoint: `node tools/web/run-wbv2-module-task.mjs --task WBV2-P1105-000 --write` ## 验收 Positive cases: Sound properties, Speaker properties, ParticleSettings properties Negative boundaries: missing Main datablock, unsupported build feature, out-of-range property Recovery: undo, redo, save/reopen, worker restart Commands: - `cmake --build build_web_blender6 --target web_engine -- -j8` - `npm --prefix web run test:e2e -- --workers=1 tests/e2e/wbv2-audio-particle-production.spec.ts` - `npm --prefix web run typecheck` The module must fail closed when the WebEngine build cannot retain the datablock in authoritative Main. `WITH_AUDASPACE=OFF` and missing non-mesh Main IDs remain typed blockers until the build/source path is corrected; no parity claim is allowed. ## 交付与回滚 - Reports: `tests/golden/WBV2-P1105-000/` - Manifest: `tests/golden/WBV2-P1105-000/manifest.json` - Status: `docs/status/WBV2-P1105-000.md` - Rollback: restore WBV2-P1104-000 as queue parent and leave this module in_progress.