# WBV2-P5-001 status - task: `WBV2-P5-001` - parent: `WBV2-P4-004` - parity: `RENDER.ROUTING` - implementationClass: `LOCAL_BOUNDED` - status: `done` - fixture: `tests/files/web/generated/WBV2-P5-001-RENDER.ROUTING.blend` ## Evidence - Blender desktop and WASM/Main expose the same bounded Eevee render settings and a canonical `workflow:render_capability_routing` receipt bound to source, settings, Blender 5.2.0 and the pinned WASM build hash. - The receipt routes bounded Eevee to `WEB_LOCAL_BOUNDED`; Cycles, complex Eevee, hardware, unavailable WebGPU, and unknown engines remain explicitly blocked or server-routed. - Desktop rendering produces a stable 64x64 RGBA pixel golden. Render image mismatch is blocked, cancellation publishes no result, and device-loss recovery releases all temporary resources. - Receipt, render settings, route decisions, and pixel identity survive WASM save/reopen exactly; malformed blend input leaves Main unchanged. ## Commands - `build_blender_5.2.0/bin/blender -b --factory-startup --python tools/web/generated/WBV2-P5-001.py -- tests/files/web/generated/WBV2-P5-001-RENDER.ROUTING.blend` - `build_blender_5.2.0/bin/blender -b --factory-startup --python tools/web/check-wbv2-p5-001-desktop.py -- tests/files/web/generated/WBV2-P5-001-RENDER.ROUTING.blend tests/golden/WBV2-P5-001/render-desktop-report.json` - `node --check tools/web/check-generated-gap.mjs` - `npm --prefix web run test:generated-gap -- --task WBV2-P5-001` - `node tools/web/check-generated-gap.mjs --task WBV2-P5-001` - `node tools/web/check-task-context.mjs --task WBV2-P5-001 --write` ## Handoff - nextTask: `WBV2-P5-002` - queue mutation: allowed after manifest and parent hash validation