完美像素既有结果应在源图处理前进入权威对账 #160
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
背景
PR #155 将完美像素算法升级为
perfect-pixel-v2,并为同一稳定 operation 已存在旧结果的情况增加operationResultAlreadyExists=true,让前端转入 GET-only 权威项目对账。本 Issue 是低频跨版本恢复边界,不阻断 PR #155。
当前问题
api-server从 owner-scoped 项目快照中已经识别到同一稳定 result resource 后,仍继续:operationResultAlreadyExists。因此,当旧版结果其实已经持久化,但旧响应和随后对账都未被客户端观察到,新版 exact retry 又遇到源对象已删除、OSS 临时故障或处理预算耗尽时,请求会先返回源图/处理错误。前端拿不到
operationResultAlreadyExists,不会进入已有结果的 GET-only 收口。该问题不导致重复扣费、数据丢失或越权;主要影响是极端恢复场景下错误优先级不准确,以及一次不必要的 OSS 下载和 CPU 处理。
期望行为
只要 owner + project + operation 对应的稳定结果记录已存在,应在源图下载和 CPU 规整之前进入“读取权威项目事实”的收口路径。既有记录损坏或与 dialog/layer 不一致时,仍由权威项目 verdict 明确报告冲突,不重新执行 POST 副作用。
验收标准
snap_editor_pixel_art_strict之前。resultPersistenceStarted=true;本次请求尚未开始持久化。相关位置
server-rs/crates/api-server/src/editor_project.rs:既有稳定资源识别、源图下载、像素规整及operationResultAlreadyExists护栏。src/components/image-editor/useImageCanvasGenerationWorkflow.ts:首次提交与人工重试的 GET-only 对账。关联:PR #155。