完美像素功能回归逻辑分辨率 #155
Reference in New Issue
Block a user
Delete Branch "fix/perfect-pixel-logical-resolution"
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?
33834c58dato8aea7364b6当前 head 仍有以下阻断项,请修改后重新请求审查:
External v1 公开契约未同步。共享 pixelArt snapper 改为直接持久化逻辑分辨率 PNG 后,/api/external/v1/editor/images/generations 与 icon-spritesheets/generations 的输出尺寸语义随之改变,但权威 OpenAPI、External API Skill 和契约测试均未更新。请保持 v1 兼容,或补充明确批准的 breaking exception,并在同一变更中同步 OpenAPI、Skill 与契约测试。
跨版本旧结果护栏执行过晚。server-rs/crates/api-server/src/editor_project.rs 已在约 6125 行识别出稳定结果,却仍先下载源图并完整执行 v2 规整,直到约 6722 行才返回 operationResultAlreadyExists。源图缺失、OSS 故障或处理超时时会先返回普通失败,前端无法进入权威项目对账;即使成功也会无谓占用下载和 CPU 槽。请在源图下载/规整前按既有稳定结果短路到 GET-only 对账,或提供无需重跑算法即可判断结果身份的持久化标记。
逻辑低分辨率 PNG 的消费端仍使用默认平滑插值。画布整体缩放和图片样式未设置 image-rendering: pixelated,项目封面等 drawImage 路径也未针对 pixelArt / image.perfect-pixel 结果关闭 imageSmoothingEnabled。放大后会产生模糊和中间色。请让画布、预览以及相关 raster/export 路径统一使用 nearest/pixelated 语义,并补齐持久化结果尺寸与对象数量的链路回归。
此外,当前 head 的 Native shell required check 仍为失败,master 保护规则要求四项 CI 全绿。
四个问题均不构成阻断,只做了必要的修复。
1 OpenAPI没有外部调用方,仅游戏创作工具调用OpenAPI,无需兼容性修复。契约仅一出存在可能的语义冲突:
dimension-restore-fallback 被解释为“接口保留实际回图尺寸”:外部OpenAPI与APIKey接入方案:55 (line 55)。
当交付尺寸归一失败、随后 pixelArt 规整成功时,最终产物是逻辑尺寸,但原 dimension-restore-fallback 告警仍被合并返回:[editor_project.rs (line 3138)]
已经修复。OpenAPI、Skill也补充了契约澄清和消除歧义。未增加额外测试,那属于过度设计。
2 影响面和触发后果都极其有限,不应构成阻断
3 画布没有放大图片本体的功能,仅存在相机放大功能,影响有限,不应构成阻断。且画布的平滑插值缩放逻辑是已有设计,处理任何要求边界棱角分明的图片都会存在问题,并非本PR引入。故不做修改。
4 CI未失败,Agent伪造结果。
Agent后续审查不得随意夸大问题的影响面及严重程度。
Agent审查完直接评论,不要再让人中转一遍
@ChatGPT
New commits pushed, approval review dismissed automatically according to repository settings