# WBV2-P12-004: viewport and non-mesh engine receipt - task: WBV2-P12-004 - parent: WBV2-P12-003 - status: in_progress - gap: workflow:viewport_nonmesh_engine_receipt - ownerFamily: VIEWPORT - targetImplementationClass: LOCAL_BOUNDED ## 目标 Bind viewport SceneIR and bounded non-mesh read/edit paths to the compiled WebEngine runtime with explicit unsupported boundaries. ## 输入与范围 - Viewport report: `tests/golden/WBV2-P2-004/viewport-report.json` - Non-mesh report: `tests/golden/WBV2-P4-003/sculpt-report.json` - WebEngine client: `web/app/src/engine-client/WebEngineClient.ts` ## 验收 - `npm --prefix web run test:e2e -- --workers=1 tests/e2e/wbv2-viewport-nonmesh-production.spec.ts` - `node tools/web/generate-wbv2-viewport-nonmesh-receipt.mjs --write` - `node tools/web/check-task-context.mjs --task WBV2-P12-004 --write` Unsupported data, malformed geometry, budget overflow, device loss, non-Chromium, or non-exact save/reopen cases must keep in_progress and must not advance nextTask. ## 交付与回滚 - Reports: `tests/golden/WBV2-P12-004/` - Status: `docs/status/WBV2-P12-004.md` - Manifest: `tests/golden/WBV2-P12-004/manifest.json` - Rollback: restore P12-003 as queue parent.