feat: create端点兜底复用预览产物 + confirm同步标题 #1486
Reference in New Issue
Block a user
Delete Branch "feat/create-endpoint-reuse-preview"
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?
改动
1. create端点兜底复用预览产物
前端刷新页面后 previewTaskId 丢失,降级调 create 接口时,如果同一 edit_plan 有已完成的预览任务,直接复用(秒出),不创建新任务、不入队。
2. confirm端点同步标题
3. domain层
Worker确认
_sync_task_config_to_plan已正确处理 voice_library_id 非空的情况(第520行),无需修改测试
🚀 预览环境已部署
CI全绿,自动审批通过。
CI全绿,自动审批通过。
40bd15e159to96bf8207de【阻塞级判定】
📊 审查概览
🔴 阻塞级问题(必须修复)
except Exception捕获所有异常。虽然这是为了"兜底"逻辑不影响主流程,但这样会掩盖掉代码中可能存在的NameError、AttributeError等编程错误,或者数据库连接层面的严重问题。如果兜底逻辑本身写错(例如变量名拼写错误),系统将静默失败,导致本该复用的预览无法复用,且难以排查原因。except (SQLAlchemyError, AttributeError):,或者至少在 except 块中记录更详细的错误上下文,并在开发环境抛出异常。💡 改进建议(不阻塞合并)
[apps/api/app/api/routes/generation_tasks.py: 299-311] 路由层直接查询数据库模型
GenerationTaskModel进行数据库查询,违反了分层架构与依赖倒置原则(Repository 模式)。虽然作为性能优化的特殊手段可以接受,但增加了代码耦合度。建议将查询逻辑封装在generation_task_repository或专门的QueryService中。[apps/api/app/api/routes/generation_tasks.py: 328] 潜在的 Schema 字段缺失风险
request.title_config,但在schemas/generation_task.py的 diff 中仅看到了ConfirmGenerationRequest的变更,未看到CreateGenerationTaskRequest增加title_config字段。请确认CreateGenerationTaskRequest的 schema 定义中已包含该字段,否则运行时会报AttributeError。✅ 良好实践
confirm_generation和create_generation_task的兜底逻辑中,正确处理了title_config为None或空字典的情况,使用了dict(obj or {})确保数据安全。create_generation_task的兜底逻辑中,增加了created_by_user_id的校验,防止用户越权复用他人的预览任务,安全性考虑到位。✅ 格式检查通过 | ❌ 逻辑审查需修改 | ✅ 性能良好
🤖 由 AI 代码审查机器人自动生成 | 2026-08-24 15:17:55 | 模型:
🗑️ 预览环境已清理
PR #1486 已关闭或合并,对应的预览环境已被清理。