补充自动分离前端接入合同
明确 UI 编辑器单次调用 separation 与 sidecar 恢复弹窗 补充资源登记、State 回填、保存和 finalize 顺序 划定旧 binding 与 Runtime workflow 的本次不改范围
This commit is contained in:
@@ -64,6 +64,17 @@
|
||||
- 每次重做产生新的 SpriteAssetId,不假设 NodeId 到 SpriteAssetId 的稳定映射。
|
||||
- sidecar 中的图片保留,正式 SpriteAsset 的最终清理策略列 TODO。
|
||||
|
||||
## 前端正式接入
|
||||
|
||||
- UI 编辑器点击“自动分离”时,前端只调用一次 `separate_ui`,消费完整 `SeparationDTO`;separation 内部 batch 不向前端暴露,也不在 UI 中显示 batch 进度。
|
||||
- 如果 sidecar 已存在未完成的 `state.json`,点击入口时先打开独立弹窗,由用户选择“继续上次分离”或“开始新的分离”。继续复用 sidecar 的 pending tree;重新开始只替换当前 `state.json`,不删除 sidecar 图片。
|
||||
- `BoundNode.cut_image_path` 必须是项目根相对路径。前端使用现有 `import_local_project_image_assets` 登记 cut 图片;由于该通用命令单次最多 100 个路径,前端可以在资源登记阶段按 100 条分组调用,但这不属于 separation batch,也不向用户展示。
|
||||
- 现有本地资源导入按清洗后的文件名 stem 与内容摘要生成目标路径;相同目标路径直接复用已有 manifest asset ID,内容不同则拒绝覆盖或生成不同摘要路径。前端不自行猜测 SpriteAsset 是否存在,也不从 NodeId 派生 SpriteAssetId。
|
||||
- 全部可登记图片完成导入后,前端在一个 `runWithStateLocked` 中复用 `addSpriteAssets` 的内部 State 变换逻辑,加入返回的 SpriteAsset 并回填仍匹配 Node 的第一个未绑定 Image component,最后一次性提交 State。公开 `addSpriteAssets` 的普通 mutation guard 不放宽。
|
||||
- UI tree 在 separation 期间发生变化时,已登记的 cut 图片和可匹配节点的回填保留;找不到 Node 或没有未绑定 Image 的结果产生明确问题提示,不回滚已登记资源,不静默跳过。
|
||||
- State 保存成功后才调用 `finalize_separation` 删除 sidecar `state.json`;登记、回填或保存失败时保留 sidecar,允许下次选择继续。sidecar 图片按当前 debug 策略保留。
|
||||
- 本次只替换 UI 编辑器独立页面的 `bindComponents` 前端入口。`binding.rs`、`bind_components` Tauri 命令及 Runtime `workflow.rs` 的旧 binding 链路暂列后续退役/迁移事项。
|
||||
|
||||
## 重启与 Raw GPT Image 2
|
||||
|
||||
- 已保存的 separation state 是跨重启继续工作的最小单位;重启后从上一个已保存 batch 的状态继续。
|
||||
@@ -77,7 +88,7 @@
|
||||
- `Vec<Component>` 重构为一种组件类型最多一个的容器。
|
||||
- 当前第一个 Image component 回填规则的正式替代方案。
|
||||
- 正在执行 batch 的持久化和恢复。
|
||||
- 前端复制、登记 SpriteAsset、回填 State 的精确 IPC/提交合同。
|
||||
- 前端登记 SpriteAsset、回填 State、sidecar 恢复弹窗和 `finalize_separation` 的实现与测试。
|
||||
- 临时图片清理/归档策略。
|
||||
- 手动抠图能力。
|
||||
- problematic 对更高层 workflow 完成门禁的最终定义。
|
||||
|
||||
Reference in New Issue
Block a user