Skip to content

fix(converter): 修复伪装为 PNG 的 HEIC 无法裁剪及旋转报错 - #297

Open
MOVIBALE wants to merge 1 commit into
mainfrom
MOVIBALE/fix/cropper-ready-actions
Open

MOVIBALE wants to merge 1 commit into
mainfrom
MOVIBALE/fix/cropper-ready-actions

Conversation

@MOVIBALE

Copy link
Copy Markdown
Collaborator

Summary

工单 LUM-202611-19ade483 的 .png 原图实际为 HEIC。浏览器无法解码,裁剪器尚未就绪,点击旋转便触发 Cannot read properties of undefined (reading 'width')。

浏览器解码失败时,现在通过已有图片预览接口按实际格式转成 PNG;保留用户原文件,处理普通上传、批量退回单图及撤销恢复,并拒绝过期转换结果。后端解码失败会显示错误并关闭无法使用的裁剪框。裁剪、旋转、缩放和确认均等待当前图片就绪,替换图片或重新打开时重新初始化。

Validation

  • 新增回归先在修改前复现失败:前端不转换无法解码的图片;后端把 HEIC 字节当 PNG 返回。修改后通过。
  • 前端定向测试:93 项通过,覆盖 CropModal、图片解码回退、converterStore、cropStore 和 BasicSettings 批量路径。额外调用的 project-resize-roundtrip 集成文件因其既有环境开关跳过 3 项。
  • python -m pytest tests/test_system_canary_integration_unit.py -q:12 项通过,包含真实 HEIC 编码、错误扩展名和最终 PNG 下载。
  • API 错误/结构化日志/logger 回归:22 项通过。
  • 工单原图真实浏览器验证:1260×2730 HEIC 自动转预览,旋转 90° 后为 2730×1260;调用真实裁剪接口成功,再次打开可继续编辑,浏览器无错误。
  • pnpm build、修改文件 ESLint、python scripts/run_smoke_tests.py、python scripts/log_quality_check.py --mode fast、git diff --check:通过。

工单附件及浏览器验证页面仅保存在本地,没有加入提交。

AI assistance

Models and tools: GPT-6 系列,具体变体未提供(via Codex)。

What each model helped with: 分析工单原始图片和堆栈,实现实际格式解码与裁剪生命周期修复,编写回归测试,执行原图交互验证并撰写说明。

How the output was checked: Codex 实际执行上述测试、构建和浏览器交互,核对接口响应、图片尺寸和控制台错误;没有将 AI 审阅当作运行验证。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant