feat(title): AI 自动选择标题开关可用 — 自动生成+只读显示+样式可调+校验放行 #1236
Reference in New Issue
Block a user
Delete Branch "fix/ai-auto-select-title"
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?
修改内容
问题
AI 自动选择标题开关打开后隐藏了手动输入,但没有任何自动生成标题的逻辑,导致标题为空、最终校验报错。
修复
1. useAiTitleGenerator.ts — 新增 autoGenerateTitle 方法
2. useTitleStyleUpdaters.ts — toggleAiAutoSelect 调用 autoGenerateTitle
3. Step4TitleSettings.tsx — 开关打开时的 UI
4. buildPayload.ts — validateGenerateInputs 放行
5. useAiTitleGenerator.ts — handleSelectAiTitle 不强制关闭开关
涉及文件
🚀 预览环境已部署
CI全绿,自动审批通过。
CI全绿,自动审批通过。
【阻塞级判定】
📊 审查概览
🔴 阻塞级问题(必须修复)
prevAiAutoSelect被初始化为titleSettings.aiAutoSelect。当页面刷新或组件首次加载时,如果titleSettings.aiAutoSelect已经是true,prevAiAutoSelect.current也为true。此时useEffect中的条件!prevAiAutoSelect.current为假,导致不会触发autoGenerateTitle()。用户在“AI 自动选择”模式下将看不到标题,必须手动点击“换一个”才能生成,违背了“自动选择”的预期行为。💡 改进建议(不阻塞合并)
autoGenerateTitle函数中,如果generateTitlesFromTopic("短视频")返回空数组(例如接口异常或无数据),picked将为undefined,导致标题被设置为空字符串。虽然前端有占位符显示,且后端校验已放行,但建议增加重试逻辑或错误提示,避免用户提交空标题。✅ 良好实践
buildPayload.ts中使用了可选链titleSettings.title?.trim(),有效避免了空指针异常。Step4TitleSettings.tsx将TitleStylePanel移至条件渲染外,符合 DRY 原则,确保两种模式下均可调整样式。🤖 由 AI 代码审查机器人自动生成 | 2026-08-04 07:14:07 | 模型:
🗑️ 预览环境已清理
PR #1236 已关闭或合并,对应的预览环境已被清理。