Accumulated uncommitted work: GHOST Web backend, WebGL/GPU web layer, web workflow engine and protocol, tooling, docs and task records. Large generated evidence, user-testing archives, build snapshots and imported test assets remain untracked. Co-Authored-By: Claude Code <noreply@anthropic.com>
3.8 KiB
DW02:启动脚本、原生菜单控件与操作入口
- stage:
main-desktop - queueTask:
WBV2-P1424-001;parent:WBV2-P1424-000;nextTask:null - 包状态:
planned_gap_closure(并不表示已有源码尚未实现) - 完整交付依赖:DW01
- 工作量级:L;不表示日期承诺
- validation:
NOT_RUN;acceptance:NOT_CLAIMED
优先复用的十多天成果
已有嵌入式 CPython、原生 bpy 接线、键盘入口、菜单/F3 和 operator properties 实现。
既有任务:WEBUI-OPERATOR-PALETTE(记录为 implemented)、NATIVE-OPERATOR-BRIDGE(记录为 implemented)、SERVER-OPERATOR-SCHEMA-PALETTE(记录为 implemented)。按需读取一个任务结果的 summary/remaining/ownedPaths,不打开完整产品报告。
相关交接仅作按需引用:
tests/golden/WBV2-P1424-001/embedded-python-implementation.mdtests/golden/WBV2-P1424-001/desktop-operator-properties-implementation.mdtests/golden/WBV2-P1424-001/gpu-keyboard-implementation.md
先对照当前小范围源码和最新交接保留已实现子项;只有缺功能、缺接线或缺必要依赖才新增实现。历史状态不自动当作当前缺口。
操作者工作流与交付
默认启动 → 注册原生 UI/工具/快捷键 → 菜单或 F3 调用 operator → 参数调整/撤销
主桌面具备实际可操作的原生 UI、快捷键与搜索;所有入口有精确 context 和失败表现。
最小生产入口
blender-5.2.0/source/blender/web_engine/web_engine_python.cppblender-5.2.0/source/blender/web_engine/web_engine_python_bootstrap.pyblender-5.2.0/source/blender/python/intern/bpy_interface.ccblender-5.2.0/source/blender/windowmanager/intern/wm_init_exit.ccblender-5.2.0/source/blender/windowmanager/intern/wm_event_system.ccweb/app/src/app/App.tsxweb/protocol/blender-operator.ts
以上为聚焦入口,非要求全文加载。使用源码聚焦工具、精确 --source/--unit 和函数片段;接入新 operator 时追加其具体原生文件,单次最多 8 个精确源码文件。没有默认测试入口或要运行的 fixture;功能完成前不执行任何验证。
只补未完成部分
- 复用 scripts/startup/bl_ui、bl_operators 与 keymap 的真实注册顺序,明确 Main/Window/Screen/Area/Region 归属。
- 完成默认菜单、面板、按钮、属性控件、工具提示、字体/图标、弹出菜单和 operator redo panel 所需 native UI 依赖。
- 确保 F3、工具栏、快捷键和菜单入口调用同一原生 operator,动态 RNA 参数、poll 条件和只读/不可用状态一致。
- 补齐本阶段需要的 Python register/unregister、回调保活、类型替换、上下文 override、撤销标志和异常传递;通用扩展由 DW26 继续。
- 处理文本输入、IME、修饰键、快捷键冲突、modal 确认/取消与窗口焦点。
- 先补本卡启动/工具依赖,再扩展具体编辑器控件;不把注册成功当作操作已完成。
失败边界
仅显示菜单、列出 operator 名或 Python 仿制 bpy 均不算实现。启动回调失败不得发布半注册 UI。
实现交接与后续使用
交付前必须具有实际入口→原生执行→消费者/结果→错误/取消→适用 history/save 的生产代码。这里是实现交付条件,不运行验收;编译成功不能替代功能。旧的已完成子项可引用并保留,不能声称本轮重新实现。
用户使用阶段的场景(现在不执行):从菜单创建对象,用 F3 调用同一操作并修改参数,使用快捷键撤销/重做,中文重命名。
每次记录保留成果、补齐断点、仍有缺口、必要构件与下一动作。共同规则见同目录 EXECUTION.md,首次领取时阅读;不要将完整计划作为后续执行上下文。