fix(canvas): 画布引用 - 统一角色与图片编号并保持生成资源顺序

This commit is contained in:
ddcat666
2026-10-08 14:20:45 +08:00
parent f0b3f4ed5a
commit e224ea1015
12 changed files with 368 additions and 130 deletions

View File

@@ -2065,7 +2065,7 @@ PR #507 核心能力已按主分支实现保留,并补齐小视口尺寸约束
- [x] 29 项提示词引用专项测试、TypeScript 检查与生产构建通过。
- [x] 旧 `@[node:节点ID]` 仅做读取迁移;新写入、配置组装、故事板物化、Agent 建图和快捷生成均只生成位置型引用。
- [x] 图片、视频、音频、文本和角色分别独立计数;生成时按当前连线顺序解析槽位,删除连线不再删除提示词。
- [x] 普通图片、角色主图和绘图共享图片编号,保留各自显示前缀;视频、音频和文本独立计数。生成时按当前连线顺序解析槽位,删除连线不再删除提示词。
- [x] 只有 `storageKey` 的图片/视频引用会异步解析预览地址;生成中按钮使用节点强调色与可见旋转动画。
- [ ] 在画布中连接图片 A 并写入 `@图片1`,删除 A 的连线后连接图片 B,确认提示词不变、缩略图切换到 B、生成请求使用 B。
- [ ] 混合连接两张图片、一段音频和一段文本,确认标签依次为 `@图片1`、`@音频1`、`@图片2`、`@文本1`,调整不同类型的连线不会串号。
@@ -2937,3 +2937,16 @@ SSE 现在按 revision 变化发送紧凑快照,无变化只 heartbeat;客
SQLite 与 HTTP recorder 已验证;PostgreSQL 16/17、前端构建及浏览器中的开关、分类维护、市场/技能库筛选、分页与明暗主题待验证。
一级分类还需 PostgreSQL 验证 46→47 与并发改归/删除,以及浏览器图示、根停用默认桶与空根表回落。handler 全套涉及 socket,受限环境中未完成。
## 画布角色与媒体引用顺序一致性
- 已实现:普通图片、角色主图、绘图共享图片编号,编辑器保留 `@图片N`、`@角色N`、`@绘图N` 类型前缀,提交模型时统一映射为实际图片数组的 `@图片N`。引用先后按连接槽位确定,逆序提及不会重排资源;拖动引用后按节点身份同步编号,中文紧邻及连续引用可正常解析,多位数字不会被部分替换。
- 已实现:角色主图占据原槽位,素材库图片保留自身资源身份,去重后的补充视角追加到主图之后。关闭角色设定注入时仍保留角色与参考图、声音样本的对应关系;多角色共用声音样本只发送一份。
- 已实现:前端解析到的角色版本与固定版本不一致、图片/视频角色缺少主参考图、模型参考容量不足、角色授权或资源读取失败时阻止提交。文本/音频允许没有主图的角色,并将其提及改为角色名、重新对应后续图片编号。
- 自动验证:前端 `bun run test` 全量 2203 项通过,类型检查、lint、冻结锁文件安装检查通过;`bun --bun run build` 通过,仍有大分块提示。普通构建命令首次因本机 Node 子进程缺少 TypeScript Darwin x64 包失败,显式使用 Bun 运行时后通过,未修改依赖版本或构建脚本。后端 `go test ./internal/app -run 'TestCloudAgent(Media|Character)' -count=1` 通过,修改的 Go 文件符合 gofmt。
- Web checks 回归:更新时间轴容器、小屏抽屉、生命周期依赖及访客创作路由的过期源码断言,相关 45 项测试通过;真实 Chrome 预演台 E2E 65 项断言通过,覆盖模式时间轴切换、模型加载/重试/加载中删除、WebGL 恢复和保存失败关闭保护。
仍待真实环境验收:
- [ ] 在登录态画布混合连接两张角色卡、普通图片、绘图及素材库图片,调整顺序、编辑提示词、保存重载并重试任务,核对编辑器标签与任务参考数组一一对应。
- [ ] 在支持声音参考的视频模型上核对多角色共用样本、已有音频与角色声音样本的编号;通过真实模型验证外观与音色效果。本轮未调用付费模型,未执行整套后端及 PostgreSQL/Redis 集成测试。