fix(create): 文本生成任务 - 恢复终态正文并停止错误的生成中状态

This commit is contained in:
dlh
2026-08-19 23:25:03 +08:00
parent 35dee568c9
commit d7a7397d28
4 changed files with 109 additions and 10 deletions

View File

@@ -28,16 +28,21 @@ export function removeCreationConversationSnapshot<T extends { id: string }>(con
return next;
}
export function pendingCreationMediaKey(conversations: StoredCreationConversation[]) {
function isRecoverableCreationMessage(message: PendingCreationMessage) {
if (message.role !== "assistant" || !message.taskIds?.length) return false;
return message.mode === "text" ? message.status === "streaming" || message.status === "pending" : message.status === "pending";
}
export function pendingCreationTaskKey(conversations: StoredCreationConversation[]) {
return conversations
.flatMap((conversation) => conversation.messages.flatMap((message) => (message.role === "assistant" && message.status === "pending" && message.mode !== "text" ? [`${conversation.id}:${message.id}:${(message.taskIds || []).join(",")}`] : [])))
.flatMap((conversation) => conversation.messages.flatMap((message) => (isRecoverableCreationMessage(message) ? [`${conversation.id}:${message.id}:${(message.taskIds || []).join(",")}`] : [])))
.join("|");
}
export function pendingCreationTaskIds(conversations: StoredCreationConversation[]) {
const taskIds = conversations.flatMap((conversation) =>
conversation.messages.flatMap((message) => {
if (message.role !== "assistant" || message.status !== "pending" || message.mode === "text") return [];
if (!isRecoverableCreationMessage(message)) return [];
return message.taskIds || [];
}),
);