feat(web): complete portable Blender feature gaps
This commit is contained in:
@@ -15,9 +15,9 @@
|
||||
| 字段 | 值 |
|
||||
| --- | --- |
|
||||
| 里程碑 | WBV2 capability workflow |
|
||||
| 当前任务 | `WBV2-P1421-001` |
|
||||
| parent manifest | `tests/golden/WBV2-P1421-000/manifest.json` |
|
||||
| 任务卡 | [`tasks/WBV2-P1421-001.md`](tasks/WBV2-P1421-001.md) |
|
||||
| 当前任务 | `WBV2-P1422-001` |
|
||||
| parent manifest | `tests/golden/WBV2-P1422-000/manifest.json` |
|
||||
| 任务卡 | [`tasks/WBV2-P1422-001.md`](tasks/WBV2-P1422-001.md) |
|
||||
| 专项验收 | `node tools/web/check-execution-control-plane.mjs` |
|
||||
| legacy coverage checkpoint | `M16-GAP-00282` |
|
||||
| legacy coverage parent | `tests/golden/M16-GAP-00281/manifest.json` |
|
||||
|
||||
61
docs/WEB_FULL_FEATURE_GAP_INVENTORY.md
Normal file
61
docs/WEB_FULL_FEATURE_GAP_INVENTORY.md
Normal file
@@ -0,0 +1,61 @@
|
||||
# Web Blender 全功能缺口盘点
|
||||
|
||||
盘点基线:`tests/golden/WBV2/dynamic-inventory.json`、
|
||||
`tests/golden/WBV2/dynamic-coverage-bindings.json`、当前 WebEngine 协议/能力注册表。
|
||||
|
||||
## 当前结论
|
||||
|
||||
直接 WebEngine 命令已经全部进入协议和原生分发:`96/96 web-command`
|
||||
均有绑定。节点注册也已完成共享 reader 覆盖:`497/497 node`。因此
|
||||
`16/16` 工作流完成只表示产品主路径已接通,不表示 Blender 的所有用户能力
|
||||
已经迁移。
|
||||
|
||||
当前仍未绑定的源单元:
|
||||
|
||||
| 类型 | 总量 | 已绑定 | 未绑定 | 处理策略 |
|
||||
| --- | ---: | ---: | ---: | --- |
|
||||
| 编辑器 operator | 2018 | 31 | 1987 | 按用户能力批量迁移;窗口/屏幕/文件浏览器改用 Web 等价流程 |
|
||||
| RNA struct | 979 | 306 | 673 | 建立 Main 数据块反射/读写批次,先覆盖用户可编辑数据 |
|
||||
| node | 497 | 497 | 0 | 共享图 reader 已覆盖,后续只补具体用户入口缺口 |
|
||||
| modifier source | 97 | 95 | 2 | 将剩余 modifier 接入统一栈参数模型 |
|
||||
| operator macro | 58 | 0 | 58 | 拆解为已有原生命令组合,不复制桌面上下文 |
|
||||
| WebEngine command | 96 | 96 | 0 | 保持现有协议/Worker/Main 契约 |
|
||||
|
||||
## Operator 缺口热点
|
||||
|
||||
未绑定 editor operator 按源码注册文件聚合后的最大缺口:
|
||||
|
||||
| 源码区域 | 数量 | 后续批次 |
|
||||
| --- | ---: | --- |
|
||||
| `editors/object/object_ops.cc` | 212 | OBJECT-EDITOR-COVERAGE |
|
||||
| `editors/mesh/mesh_ops.cc` | 140 | MESH-EDITOR-COVERAGE |
|
||||
| `editors/space_sequencer/sequencer_ops.cc` | 98 | SEQUENCER-COMPOSITOR-COVERAGE |
|
||||
| `editors/physics/physics_ops.cc` | 82 | PHYSICS-SIMULATION-COVERAGE |
|
||||
| `editors/curve/curve_ops.cc` | 78 | CURVE-SURFACE-COVERAGE |
|
||||
| `editors/armature/armature_ops.cc` | 77 | ARMATURE-EDITOR-COVERAGE |
|
||||
| `editors/space_clip/space_clip.cc` | 77 | TRACKING-MASK-COVERAGE |
|
||||
| `editors/space_node/node_ops.cc` | 77 | SEQUENCER-COMPOSITOR-COVERAGE |
|
||||
| `editors/space_outliner/outliner_ops.cc` | 73 | ASSET-LIBRARY-COVERAGE |
|
||||
| `editors/sculpt_paint/paint_ops.cc` | 69 | SCULPT/PAINT follow-up |
|
||||
| `editors/space_graph/graph_ops.cc` | 66 | ANIMATION-FCURVE-DRIVER-COVERAGE |
|
||||
| `editors/space_view3d/view3d_ops.cc` | 63 | OBJECT/MESH/RENDER batches |
|
||||
| `editors/render/render_ops.cc` | 50 | RENDER-CAMERA-LIGHT-COVERAGE |
|
||||
| `editors/uvedit/uvedit_ops.cc` | 48 | MESH-EDITOR-COVERAGE |
|
||||
| `editors/grease_pencil/**` | 42 | GREASE-PENCIL-COVERAGE |
|
||||
|
||||
Window manager, screen, interface, text editor and native file-browser operators
|
||||
remain explicit browser/OS boundaries. They are not claimed as missing Web
|
||||
features when a browser-native equivalent exists.
|
||||
|
||||
## Implementation order
|
||||
|
||||
1. User-visible authoring gaps that reuse existing Main transactions: object,
|
||||
mesh, curve, armature, animation, sequencer, physics.
|
||||
2. Browser-native media/data workflows: tracking, masks, Grease Pencil, render,
|
||||
asset libraries and interchange.
|
||||
3. Generic RNA reflection for the remaining data-block fields.
|
||||
4. Macro decomposition and operator catalog expansion only where a real Web
|
||||
workflow exists; no arbitrary desktop-context emulation.
|
||||
|
||||
Verification remains incremental and deferred to user operation. No completion
|
||||
claim is made from inventory counts alone.
|
||||
@@ -4,4 +4,4 @@
|
||||
- workflow modules: `16/16`
|
||||
- implementation tasks: `14/14`
|
||||
- verification: `deferred_until_user_reports`
|
||||
- nextTask: `NONE`
|
||||
- nextTask: `WBV2-P1422-000`
|
||||
|
||||
5
docs/status/WBV2-P1422-000.md
Normal file
5
docs/status/WBV2-P1422-000.md
Normal file
@@ -0,0 +1,5 @@
|
||||
# WBV2-P1422-000 status
|
||||
|
||||
- status: `done`
|
||||
- gap inventory: `docs/WEB_FULL_FEATURE_GAP_INVENTORY.md`
|
||||
- nextTask: `WBV2-P1422-001`
|
||||
7
docs/status/WBV2-P1422-001.md
Normal file
7
docs/status/WBV2-P1422-001.md
Normal file
@@ -0,0 +1,7 @@
|
||||
# WBV2-P1422-001 status
|
||||
|
||||
- status: `implemented`
|
||||
- workflow modules: `16/16`
|
||||
- implementation tasks: `26/26`
|
||||
- verification: `deferred_until_user_reports`
|
||||
- nextTask: `NONE`
|
||||
7
docs/tasks/WBV2-P1422-000.md
Normal file
7
docs/tasks/WBV2-P1422-000.md
Normal file
@@ -0,0 +1,7 @@
|
||||
# WBV2-P1422-000: authorize full Web feature gap implementation
|
||||
|
||||
- task: WBV2-P1422-000
|
||||
- parent: WBV2-P1421-001
|
||||
- status: done
|
||||
- nextTask: WBV2-P1422-001
|
||||
- gap inventory: `docs/WEB_FULL_FEATURE_GAP_INVENTORY.md`
|
||||
39
docs/tasks/WBV2-P1422-001.md
Normal file
39
docs/tasks/WBV2-P1422-001.md
Normal file
@@ -0,0 +1,39 @@
|
||||
# WBV2-P1422-001: complete full Web feature gap implementation
|
||||
|
||||
- task: WBV2-P1422-001
|
||||
- parent: WBV2-P1422-000
|
||||
- status: in_progress
|
||||
- targetImplementationClass: PRODUCT_WORKFLOW
|
||||
- implementation entrypoint: `python3 my-tools/run_web_product_migration.py`
|
||||
- node tools/web/print-task-context.mjs
|
||||
- scope: `docs/WEB_FULL_FEATURE_GAP_INVENTORY.md` and pending tasks in `tests/golden/WBV2/web-product-backlog.json`
|
||||
- verification: deferred to user operation; do not run full validators in implementation turns
|
||||
|
||||
## 目标
|
||||
|
||||
Implement every pending user-reachable Web feature gap in the backlog through Blender Main/WASM routes, preserving browser-native equivalents for desktop-only UI.
|
||||
|
||||
## 输入与范围
|
||||
|
||||
- `docs/WEB_FULL_FEATURE_GAP_INVENTORY.md`
|
||||
- `tests/golden/WBV2/web-product-backlog.json`
|
||||
- owned source/protocol/Worker/UI paths listed by each pending task
|
||||
|
||||
## 验收
|
||||
|
||||
- one bounded implementation task per Codex turn
|
||||
- existing dirty changes are preserved
|
||||
- no JavaScript simulation replaces Blender Main behavior
|
||||
- verification remains deferred until user operation
|
||||
|
||||
## 失败边界
|
||||
|
||||
- failed turns remain pending and are retried
|
||||
- unsupported desktop-only or unavailable-resource paths fail closed
|
||||
- no task advances from a missing result artifact or unrelated file change
|
||||
|
||||
## 交付与回滚
|
||||
|
||||
- result artifacts: `tests/golden/WBV2/product-migration/*-result.json`
|
||||
- aggregate report: `tests/golden/WBV2-P1422-001/product-implementation-report.json`
|
||||
- rollback: stop the product runner and retain the last completed bounded task
|
||||
Reference in New Issue
Block a user