# WBV2-P1126-000: Grease Pencil viewport module - task: `WBV2-P1126-000` - parent: `WBV2-P1125-000` - status: `in_progress` - gap: `workflow:module_grease_pencil_viewport` - ownerFamily: `DRAWING` - targetImplementationClass: `LOCAL_BOUNDED` ## 目标 验证 Grease Pencil 2D canvas 与主线程/Offscreen 3D viewport 的 selection revision、marquee stable IDs 和 backend convergence。使用独立端口,避免复用陈旧 Vite 进程。 ## 输入与范围 - Protocol: `web/protocol/grease-pencil-selection.ts`, `web/protocol/grease-pencil-marquee.ts` - UI/adapters: `web/app/src/app/App.tsx`, `web/app/src/three-adapter/grease-pencil.ts`, `web/app/src/three-adapter/viewport.ts`, `web/app/src/three-adapter/offscreen-viewport.ts`, `web/app/src/workers/viewport-render.worker.ts` - Tests: `web/tests/e2e/grease-pencil-selection.spec.ts`, `web/tests/e2e/grease-pencil-marquee.spec.ts`, `web/tests/unit/grease-pencil-selection.test.mjs`, `web/tests/unit/grease-pencil-marquee.test.mjs` ## 验收 ```bash WEB_TEST_PORT=5331 npm --prefix web run test:e2e -- --workers=1 tests/e2e/grease-pencil-selection.spec.ts tests/e2e/grease-pencil-marquee.spec.ts node --test web/tests/unit/grease-pencil-selection.test.mjs web/tests/unit/grease-pencil-marquee.test.mjs npm --prefix web run typecheck ``` 必须记录 2D/3D selection revision、主线程/Offscreen marquee 正例、stale/foreign/duplicate candidate 负例、worker restart、Main revision 不变和 Chromium。端口占用只能通过独立端口恢复,不得改写测试断言。 ## 交付与回滚 - Receipt: `tests/golden/WBV2-P1126-000/module-receipt.json` - Manifest: `tests/golden/WBV2-P1126-000/manifest.json` - Status: `docs/status/WBV2-P1126-000.md` - 回滚:恢复 P1125 manifest 为 queue parent。