fix(canvas): 画布批量生成 - 修复节点丢失、资源引用及刷新状态不一致

This commit is contained in:
ddCat
2026-09-21 21:13:29 +08:00
parent dc1ad68015
commit 6f45240599
26 changed files with 533 additions and 179 deletions

View File

@@ -66,7 +66,9 @@ description: 从产品功能快速定位主要代码入口
| 3D 导演台 | `web/src/components/canvas/director/` |
| 节点生成上下文 | `web/src/components/canvas/canvas-node-generation.ts` |
| 布局和连线算法 | `web/src/lib/canvas/canvas-layout.ts`、`canvas-frame.ts` |
| 任务结果回填 | `web/src/lib/canvas/canvas-generation-task-sync.ts` |
| 任务结果准备与按节点提交 | `web/src/lib/canvas/canvas-generation-task-sync.ts`、`canvas-generation-result.ts`;持久化协调在 `web/src/services/canvas-generation-consumer.ts` |
| 编辑命令与批次状态投影 | `web/src/lib/canvas/canvas-editor-state.ts`、`canvas-task-state.ts`、`canvas-image-batch-retry.ts` |
| 视口节点选择与输入关系解析 | `web/src/lib/canvas/canvas-node-visibility.ts`、`canvas-resource-references.ts` |
| 本地持久化状态 | `web/src/stores/canvas/use-canvas-store.ts` |
| 云端 Agent 运行与事件 API | `web/src/services/api/agent.ts`、`web/src/components/canvas/canvas-cloud-agent-panel.tsx` |
| Agent 画布上下文、操作与历史 | `web/src/lib/canvas/canvas-context-discovery.ts`、`canvas-operation-contract.ts`、`web/src/pages/canvas/use-canvas-operation-history.ts` |

View File

@@ -5,6 +5,18 @@ description: 当前项目已实现功能的手工验证清单与未确认边界
# 待测试
## 批量生图、刷新恢复与画布节点一致性
- [x] 专项回归 127 项通过,覆盖同步编辑命令、按节点结果提交、批次汇总、资源槽位、空间索引、相邻媒体逻辑、revision 合并与存储清理;前端类型检查通过。
- [x] 真实生成消费及持久化模块集成测试:两张成功、三张失败,在结果保存期间新增节点、改名和移动;重新读取模拟浏览器存储后,结果与用户编辑均保留。该测试曾复现“内存有节点、存储缺节点”,修复后通过。
- [ ] 使用真实登录账号连接两张已有参考图,提示词包含 `@图片1` 和 `@图片2`,批量生成五张并重试失败子图;验证生成、提示词标签和参考图顺序一致,分组父图不冒充输入。
- [ ] 真实任务两成三败后刷新,检查两张成功图、三个失败节点、父图失败数量和素材 ID;在生成中拖动、改名、新增、删除其他节点,保存后刷新复核。
- [ ] 模拟预览尚未恢复但已有 storageKey,取消或重新生成批次,确认不会删除成功图片;删除后重新分组的子图不受旧批次清理影响。
- [ ] 真实大画布在明暗主题下反复平移缩放,覆盖 280/420/720 原预算边界、批次折叠/展开和多选拖拽;确认可见节点不缺失,并记录极端缩小的帧率和内存。纯函数可见性测试不代替渲染性能验收。
- [ ] 任务发现接口断网、最近任务超过 100 条、切换画布和账号时验证:不能把未知状态标成失败,旧任务不能覆盖新任务,任务中心仍可核对结果。
- [ ] 验证浏览器真实存储故障、服务端同步失败、跨设备并发编辑及生成后立即关闭页面;本轮没有启动开发服务、访问真实用户数据或调用付费模型。
- [ ] 历史已丢节点需单独恢复;本次修复不自动重建原位置、连线和提示词。架构与已知限制见 `docs/design/canvas-consistency-repair.mdx`。
## 回收站彻底删除与画布工具引用
- [ ] 素材卡片选择框恢复左上角,徽章为选择框和更多菜单让位;批量操作条取消吸顶覆盖,并与卡片网格保留间距。需在真实登录页面检查多选边框、长列表滚动、窄屏换行和明暗主题;自动浏览器访问被登录页拦截,样式约束测试不代替视觉验收。