# WBV2-P1102-000: implement_ui_editor_module - task: WBV2-P1102-000 - parent: WBV2-P1101-003 - status: in_progress - gap: workflow:module_ui_editor - ownerFamily: EDITOR - targetImplementationClass: LOCAL_EXACT - moduleId: UI_EDITOR ## 目标 Complete one coherent Blender function module through shared Main primitives and an aggregate operator case matrix. ## 输入与范围 - Source paths: - `web/protocol/editor-workflow.ts` - `web/app/src/app/App.tsx` - `web/app/src/workers/web-engine.worker.ts` - Reused receipts: - None; source-backed implementation must be established before activation - Implementation and verification entrypoint: `node tools/web/run-wbv2-module-task.mjs --task WBV2-P1102-000 --write` ``` node tools/web/run-wbv2-module-task.mjs --task WBV2-P1102-000 --write ``` ## 验收 Positive cases: editor context, workspace, area/region Negative boundaries: unsupported editor, invalid context Recovery: worker restart, save/reopen Commands: - `npm --prefix web run test:editor-main-reader` - `npm --prefix web run test:e2e -- --workers=1 tests/e2e/ui-editor-workflow-production.spec.ts` - `npm --prefix web run typecheck` Malformed or unsupported input must fail closed. A module advances only when source hashes, positive Main mutation, negative no-mutation, undo/redo, save/reopen, Chromium and aggregate manifest checks pass. A representative case never claims full-family parity. ## 交付与回滚 - Reports: `tests/golden/WBV2-P1102-000/` - Manifest: `tests/golden/WBV2-P1102-000/manifest.json` - Status: `docs/status/WBV2-P1102-000.md` - Rollback: restore WBV2-P1101-003 as queue parent and leave this module in_progress.