fix: 移除 previewTaskId 自动清除 + 从预览响应提取 source_edit_plan_id #1483
Reference in New Issue
Block a user
Delete Branch "fix/preview-reuse-v2"
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 #1480 部署后,confirmGeneration 仍未被调用,任务直接走 fallback createGenerationTask 且没传 source_edit_plan_id,导致 worker 报错 "source_edit_plan_id is required"。
根因
改动
source_edit_plan_id?字段验证
【阻塞级判定】
📊 审查概览
🔴 阻塞级问题(必须修复)
无
💡 改进建议(不阻塞合并)
无
✅ 良好实践
[apps/web/src/pages/generate/hooks/useStep6Cover.ts] 竞态条件处理
previewTaskId和storedSourceEditPlanId时,使用了previewParamsRef.current === currentFingerprint进行校验。这有效地防止了因用户快速连续操作或网络请求乱序导致的状态不一致(即确保只处理最新请求的响应),是处理异步竞态问题的良好实践。[apps/web/src/pages/generate/GeneratePage.tsx] 向后兼容性处理
sourceEditPlanId时使用了storedSourceEditPlanId || sourceEditPlanId的逻辑。这确保了如果后端旧版本未返回source_edit_plan_id(stored为空),前端会自动降级使用原有的sourceEditPlanId,保证了新旧接口兼容,不会破坏现有功能。[apps/web/src/api/generation/types.ts] 类型定义清晰
source_edit_plan_id字段标记为可选 (?),并添加了清晰的 JSDoc 注释说明其用途,符合 TypeScript 最佳实践。✅ 格式检查通过 | ✅ 逻辑审查通过 | ✅ 性能良好
🤖 由 AI 代码审查机器人自动生成 | 2026-08-24 08:37:34 | 模型:
🚀 预览环境已部署
CI全绿,自动审批通过。
CI全绿,自动审批通过。
🗑️ 预览环境已清理
PR #1483 已关闭或合并,对应的预览环境已被清理。