# WBV2-P1121-000: paint stroke module - task: `WBV2-P1121-000` - parent: `WBV2-P1120-000` - status: `in_progress` - gap: `workflow:module_paint_stroke` - ownerFamily: `SCULPT` - targetImplementationClass: `LOCAL_BOUNDED` ## 目标 按功能模块验证 paint pointer session、GPU depth visibility 和 PBVH capability gate。 ## 输入与范围 - Blender Main/API: `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` - Protocol: `web/protocol/web-engine.ts`, `web/protocol/sculpt.ts`, `web/protocol/paint.ts`, `web/protocol/paint-stroke-session.ts`, `web/protocol/paint-depth-visibility.ts`, `web/protocol/paint-pbvh-capability.ts` - Runtime: `web/app/src/workers/web-engine.worker.ts`, `web/app/src/three-adapter/paint-depth-visibility.ts`, `web/app/src/three-adapter/viewport.ts`, `web/app/src/three-adapter/offscreen-viewport.ts`, `web/app/src/app/App.tsx` ## 验收 ```bash npm --prefix web run test:paint-stroke-session npm --prefix web run test:paint-depth-visibility npm --prefix web run test:paint-pbvh-capability npm --prefix web run typecheck ``` 必须记录 pointer chunks/undo 正例、stale/forged/budget/PBVH-unavailable 负例、cancel cleanup、worker restart、main/offscreen GPU 和 Chromium。PBVH 缺 entrypoint 保持 BLOCKED,不推导 sculpt brush parity。 ## 交付与回滚 - Receipt: `tests/golden/WBV2-P1121-000/module-receipt.json` - Manifest: `tests/golden/WBV2-P1121-000/manifest.json` - Status: `docs/status/WBV2-P1121-000.md` - 回滚:恢复 P1120 manifest 为 queue parent。