修正画布改造工具恢复链路 #158

Merged
kdletters merged 6 commits from fix/redraw-fallback-to-quickedit into master 2026-08-11 12:36:30 +08:00
Member

在文档中明确改造特殊情况的处理

修复fallback到快速编辑的行为:
旧版图片按 assetKind 与 mediaType 选择工具,未知图片回落默认生成工具并保留旧版告警,而不是all in fallback到快速编辑

清理冗余代码:
移除 QuickEditPanelState 的 redraw 模式、旧提交分支及无调用结果层构造器

在文档中明确改造特殊情况的处理 修复fallback到快速编辑的行为: 旧版图片按 assetKind 与 mediaType 选择工具,未知图片回落默认生成工具并保留旧版告警,而不是all in fallback到快速编辑 清理冗余代码: 移除 QuickEditPanelState 的 redraw 模式、旧提交分支及无调用结果层构造器
k88936 self-assigned this 2026-08-10 18:57:23 +08:00
k88936 added this to the 美术画布 project 2026-08-10 18:57:23 +08:00
k88936 added 2 commits 2026-08-10 19:30:55 +08:00
改造按 V2 原 action 恢复对应工具,image.edit 保持原位快速编辑且不提供改造入口
旧版图片按 assetKind 与 mediaType 选择工具,未知图片回落默认生成工具并保留旧版告警
移除 QuickEditPanelState 的 redraw 模式、旧提交分支及无调用结果层构造器
补充能力显隐、恢复面板、旧 source 缺失与工作流回归测试
同步更新图片画布编辑器技术方案
修复图像画布生成工作流未使用导入
Project CI / Repository checks (pull_request) Successful in 1m21s
Project CI / Native shell tests (pull_request) Successful in 13m37s
Project CI / Frontend tests (pull_request) Successful in 2m57s
Project CI / Backend tests (pull_request) Successful in 4m3s
00785fc0c7
移除未使用的图像生成像素尺寸解析函数导入
k88936 force-pushed fix/redraw-fallback-to-quickedit from 98b943745a to 00785fc0c7 2026-08-10 19:30:55 +08:00 Compare
k88936 marked the pull request as ready for review 2026-08-10 20:00:06 +08:00
k88936 requested review from kdletters 2026-08-10 20:00:12 +08:00
kdletters requested changes 2026-08-10 20:24:12 +08:00
kdletters left a comment
Member

请求修改。当前 head 的核心恢复路由和 4 项 CI 已通过,但同一份权威方案仍同时保留新的“改造”语义与已经删除的旧“重绘”语义;新 legacy 图片默认生成路径也只覆盖了打开面板,没有验证实际提交和落图闭环。请统一文档合同并补齐提交级回归。另 master 已前进到 a4ead1a,本分支当前落后 2 个提交;修复后请同步最新 master、重新跑完整 CI 再请求 review。

请求修改。当前 head 的核心恢复路由和 4 项 CI 已通过,但同一份权威方案仍同时保留新的“改造”语义与已经删除的旧“重绘”语义;新 legacy 图片默认生成路径也只覆盖了打开面板,没有验证实际提交和落图闭环。请统一文档合同并补齐提交级回归。另 master 已前进到 a4ead1a,本分支当前落后 2 个提交;修复后请同步最新 master、重新跑完整 CI 再请求 review。
@@ -22,3 +22,3 @@
- 生成类产物的工具栏动作 `改造` 不在原产物上原地修改,而是把当次生成输入恢复到对应面板,允许编辑后生成新产物。按钮显隐只按 action capability 判断:确定性派生等不支持改造的 action 隐藏;支持改造的 action 即使参数损坏或必需来源丢失也保留按钮,点击后再显示准确错误,禁止用恢复状态静默隐藏入口。`image.edit` 明确不属于可改造 action:图片快速编辑使用 `targetLayerId` 原位替换画布层,结果层就是被覆盖后的原层,其配方 source 指向替换前的编辑目标,不能再可靠恢复为“改造”新产物;这类结果继续显示“快速编辑”,不显示“改造”。
- V2 恢复严格按顶层 `action``fields[].id``references[].id/refType/refId` 定位,`title` / `label` 只是展示快照,不作为参数键。引用只在当前已 hydrate 的画布图层中按 `refType/refId` 匹配,媒体类型取匹配图层的运行时数据,不重复写入 `generationInputs.references`,也不新增 owner-only 工程资源 / 素材库查询。面板直接上传的参考素材不进入素材库、不是画布图层,因此改造时不恢复;原参考图层已移出画布时同样不恢复。**引用在提交时是否必填,不是恢复时拒绝打开面板的依据**:凡目标面板提供重新选择入口的槽位,无论可选还是必填,缺失时都必须 best effort 打开面板、留空槽位并提示用户重新选择,最终由提交门禁校验;例如角色生成缺少必填角色规范、图标生成缺少必填图标规范、普通图片 / 视频缺少参考图时,都必须打开原 action 面板让用户补选。只有已支持改造但目标面板没有手动替换入口、缺少 source 就无法构造请求时才允许拒绝,当前严格限定为两个例外:`character-animation.generate` 的 source 决定角色动作面板绑定的原角色图层,面板内部不能换角色;`ui-design.extract-assets` 的 source 同时决定框选覆盖层的坐标系,素材提取面板不能改绑另一张设计图。两个例外仍按 action capability 保留改造按钮;source 缺失时点击按钮才显示“无法改造”并分别说明不可替换原因,点击后 source 变化也必须在恢复路径再次校验并拒绝;该失败规则不得用于任何可手动补选的槽位。
- 改造恢复顺序为:有效 V2;完整的历史生成对话框;按 `assetKind/mediaType`、历史中英文标题别名、资源模型 / 尺寸 / 时长 / `sourceResourceId` 的 legacy adapter,最后缺失值使用当前默认值并显示旧版恢复告警;一旦识别为有效 V2,即使引用缺失也不得降级到 legacy adapter。禁止从中文标题、产物尺寸或 prompt 反推 V2 参数;legacy fallback 除外,但不得回退展示 `actualPrompt` 中的后端拼接 Prompt。当前 BGM 是字段语义上的例外:其新记录中的 `prompt``actualPrompt` 必须等于输入框已经写回的 canonical `gpt_description_prompt`,不得包含隐藏内容;但改造输入仍只从 `generationInputs.fields` 恢复,不能因此放宽为从资源审计字段回退。
- 改造恢复顺序为:有效 V2;完整的历史生成对话框;按 `assetKind/mediaType`、历史中英文标题别名、资源模型 / 尺寸 / 时长 / `sourceResourceId` 的 legacy adapter,最后缺失值使用当前默认值并显示“已按旧版数据恢复,部分参数可能使用当前默认值。”。legacy adapter 必须先按 `assetKind/mediaType` 映射角色、图标、UI、场景、视频、音频等原工具;只有图片族且 `assetKind` 为空或未知时才使用默认的普通图片生成工具。无法映射到可用工具时准确提示无法改造。一旦识别为有效 V2,即使引用缺失也不得降级到 legacy adapter。禁止从中文标题、产物尺寸或 prompt 反推 V2 参数;legacy fallback 除外,但不得回退展示 `actualPrompt` 中的后端拼接 Prompt。当前 BGM 是字段语义上的例外:其新记录中的 `prompt``actualPrompt` 必须等于输入框已经写回的 canonical `gpt_description_prompt`,不得包含隐藏内容;但改造输入仍只从 `generationInputs.fields` 恢复,不能因此放宽为从资源审计字段回退。
Member

[P1] 请清理同一权威文档里的旧 redraw 契约

这里把 legacy 图片改造定义为按 assetKind/mediaType 恢复原生成器,未知图片回到普通 generate;但本文件第 26、200、207–208 行仍要求“重绘”携带源图、按 quick-edit / character 提交、在右侧新增结果并保持面板打开。当前实现的普通生成只读取 generationReferences,不会因为存在 sourceLayerId 就自动携带源图,所以两套合同不能同时成立。请明确正式语义并直接改掉所有冲突旧描述:若以“按原 action / 工具恢复”为准,应清理旧重绘、源图引用和面板常驻表述;若旧源图重绘才是正式口径,则需恢复对应提交链路及测试。

**[P1] 请清理同一权威文档里的旧 redraw 契约** 这里把 legacy 图片改造定义为按 `assetKind/mediaType` 恢复原生成器,未知图片回到普通 `generate`;但本文件第 26、200、207–208 行仍要求“重绘”携带源图、按 `quick-edit` / `character` 提交、在右侧新增结果并保持面板打开。当前实现的普通生成只读取 `generationReferences`,不会因为存在 `sourceLayerId` 就自动携带源图,所以两套合同不能同时成立。请明确正式语义并直接改掉所有冲突旧描述:若以“按原 action / 工具恢复”为准,应清理旧重绘、源图引用和面板常驻表述;若旧源图重绘才是正式口径,则需恢复对应提交链路及测试。
k88936 marked this conversation as resolved
@@ -1593,3 +1593,3 @@
});
it('opens image redraw as a new canvas generator next to the source layer', () => {
it('opens image remodel without an origin action in the default image tool', () => {
Member

[P2] 请覆盖 legacy 图片改造的真实提交闭环

这个新增用例只断言默认 generate 面板被打开。此次同时删除了旧 redraw 的提交和结果层分支,因此请求路由、参考图、配方和落图任一处漂移都可能在当前断言下继续通过。请把用例扩展到点击提交,并校验 generateEditorImage 的 prompt / model / references、generationInputs.action === "image.generate"canvasCompletion 或结果位置,以及生成后 dialog / composer 终态;已知 assetKind 的恢复路径也应至少有一条同级闭环。

**[P2] 请覆盖 legacy 图片改造的真实提交闭环** 这个新增用例只断言默认 `generate` 面板被打开。此次同时删除了旧 redraw 的提交和结果层分支,因此请求路由、参考图、配方和落图任一处漂移都可能在当前断言下继续通过。请把用例扩展到点击提交,并校验 `generateEditorImage` 的 prompt / model / references、`generationInputs.action === "image.generate"`、`canvasCompletion` 或结果位置,以及生成后 dialog / composer 终态;已知 `assetKind` 的恢复路径也应至少有一条同级闭环。
k88936 marked this conversation as resolved
k88936 added 3 commits 2026-08-11 11:32:53 +08:00
统一 legacy 改造按 assetKind/mediaType 恢复原 action 与工具
明确禁止普通生成自动附加当前图片或改写请求类型
移除旧重绘入口、源图携带和面板常驻描述
覆盖未知 legacy 图片回退普通生成的请求、配方、落图和面板终态
覆盖已知角色素材恢复原工具并提交角色规范引用的完整链路
同步图片画布架构文档中的定向测试门禁
合并主分支
Project CI / Repository checks (pull_request) Failing after 12s
Project CI / Backend tests (pull_request) Failing after 13s
Project CI / Frontend tests (pull_request) Successful in 2m39s
Project CI / Native shell tests (pull_request) Failing after 11m32s
abea8066ff
解决合并冲突
k88936 added 1 commit 2026-08-11 11:34:37 +08:00
合并主分支
Project CI / Repository checks (pull_request) Successful in 50s
Project CI / Frontend tests (pull_request) Successful in 3m18s
Project CI / Backend tests (pull_request) Successful in 3m55s
Project CI / Native shell tests (pull_request) Successful in 14m36s
f5a8abb2aa
解决合并冲突
k88936 requested review from kdletters 2026-08-11 12:02:15 +08:00
kdletters merged commit 4c0fdf1806 into master 2026-08-11 12:36:30 +08:00
kdletters deleted branch fix/redraw-fallback-to-quickedit 2026-08-11 12:36:30 +08:00
Sign in to join this conversation.