feat(#632): 一键生成输出分辨率可配置 #749
Reference in New Issue
Block a user
Delete Branch "feat/oneclick-resolution-config"
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?
变更内容
修复 #632 — 一键生成输出分辨率可配置
核心改动
验证
CI全绿,自动审批通过。
CI全绿,自动审批通过。
🚀 预览环境已部署
代码审查结果 - PR #749
⚠️ 问题(2个需要修改)
apps/api/app/schemas/generation_task.py 第49行:缺少对
resolution字段格式的校验。description描述了格式要求("WIDTHxHEIGHT"),但代码层面没有进行正则校验。用户可以传入任意字符串(如 "abc"、"0x0" 或 "-1x-1"),这些无效数据会被传递到底层渲染引擎,可能导致渲染任务失败或资源浪费。@field_validator或使用regex参数限制格式,例如pattern=r"^\d+x\d+$",并增加合理的数值范围检查(如 10-7680)。alembic/versions/051_generation_task_resolution.py 第36行:数据库迁移脚本在非 PostgreSQL 数据库下不具备幂等性。
op.add_column会抛出 "duplicate column name" 错误导致迁移失败。op.execute配合ALTER TABLE ... IF NOT EXISTS(如果DB支持)或使用batch_alter_table配合sa.inspect来实现跨数据库的幂等检查,或者统一使用 try-except 捕获重复列异常。💡 建议(1个可选)
strip()操作的健壮性。resolution.strip()存在理论上的AttributeError风险(如果被非 API 入口直接调用并传入 None)。建议修改为(resolution or "").strip()以确保绝对安全。✅ 格式检查通过 | ❌ 逻辑审查需修改 | ✅ 建议关注性能
🤖 由 AI 代码审查机器人自动生成 | 2026-07-23 10:28:39 | 模型:
🗑️ 预览环境已清理
PR #749 已关闭或合并,对应的预览环境已被清理。