fix(web): 多 task 串行推进 task2 不再被预览生成时提前触发

onPreviewReadyForNextTask 在 task1 申请核对表刚生成、用户还没操作时就
提前拉起 task2,与用户后续在 task1 上的保存草稿/提交操作互相打架,导致
task2 完全无反应。移除该提前推进回调,统一由 onApplicationActionCompleted
在 task1 真正完成后再推进 task2。

- useWorkbenchAiApplicationPreviewFlow: 删除预览生成时的提前推进分支
- usePersonalWorkbenchAiMode: startModelPlannedApplicationPreview 不再传 onPreviewReadyForNextTask
- useWorkbenchAiActionRouter: 低置信确认按钮分支同步删除该回调
- 新增时序回归测试:预览生成不提前推进、保存草稿后才推进
- 更新两处源码正则断言为 doesNotMatch
This commit is contained in:
caoxiaozhu
2026-06-30 11:40:31 +08:00
parent 08f023243e
commit 43779f8f2c
6 changed files with 66 additions and 16 deletions

View File

@@ -619,13 +619,10 @@ export function useWorkbenchAiApplicationPreviewFlow({
userText: options.userMessage || '保存草稿',
onApplicationActionCompleted: options.onApplicationActionCompleted
})
} else if (
typeof options.onPreviewReadyForNextTask === 'function' &&
Array.isArray(previewMessage.stewardRemainingTasks) &&
previewMessage.stewardRemainingTasks.length
) {
options.onPreviewReadyForNextTask(previewMessage.stewardRemainingTasks, previewMessage)
}
// 多 task 串行推进:预览生成后不提前拉起下一个 task(避免和用户在 task1 核对表上的
// 保存草稿/提交操作互相打架,导致 task2 状态错乱)。task2 的推进统一交给
// onApplicationActionCompleted,在 task1 真正完成(保存草稿/提交成功)后再触发。
} catch (error) {
replaceInlineMessage(pendingMessage.id, createInlineMessage('assistant', error?.message || '申请核对表生成失败,请稍后重试。', {
id: pendingMessage.id,