fix: AI消息时间戳显示、工具调用卡片恢复
1. 修复AI回复消息不显示时间戳的问题:updateLastAssistantMessage 新增 timestamp 参数 2. 恢复工具调用卡片显示(工具名称+参数,不显示执行结果):updateLastAssistantMessage 新增 toolCalls 参数 3. 根因:流式消息通过 updateLastAssistantMessage 更新 DOM,但该函数未渲染时间戳和工具卡片, 而 renderMessages 因 placeholder 已被计数而跳过 appendMessageDOM
This commit is contained in:
@@ -356,7 +356,7 @@ async function handleRetry(): Promise<void> {
|
||||
...s, messages: [...s.messages, lastMsg], updatedAt: Date.now()
|
||||
}));
|
||||
}
|
||||
updateLastAssistantMessage(finalContent, retryThinkContent || null, loopStats || null);
|
||||
updateLastAssistantMessage(finalContent, retryThinkContent || null, loopStats || null, undefined, Date.now(), toolRecords?.length ? toolRecords : undefined);
|
||||
} else {
|
||||
const assistantMsg: ChatMessage = {
|
||||
role: 'assistant', content: finalContent || '', timestamp: Date.now(),
|
||||
@@ -369,7 +369,7 @@ async function handleRetry(): Promise<void> {
|
||||
state.update(KEYS.CURRENT_SESSION, (s: ChatSession | null) => ({
|
||||
...s, messages: [...s.messages, assistantMsg], updatedAt: Date.now()
|
||||
}));
|
||||
updateLastAssistantMessage(finalContent, retryThinkContent || null, loopStats || null);
|
||||
updateLastAssistantMessage(finalContent, retryThinkContent || null, loopStats || null, undefined, Date.now(), toolRecords?.length ? toolRecords : undefined);
|
||||
}
|
||||
renderMessages();
|
||||
await saveCurrentSession();
|
||||
@@ -749,7 +749,9 @@ export async function sendMessage(): Promise<void> {
|
||||
}));
|
||||
|
||||
if (finalStats) {
|
||||
updateLastAssistantMessage(assistantContent, thinkContent || null, finalStats, modelName || undefined);
|
||||
updateLastAssistantMessage(assistantContent, thinkContent || null, finalStats, modelName || undefined, Date.now());
|
||||
} else {
|
||||
updateLastAssistantMessage(assistantContent, thinkContent || null, null, modelName || undefined, Date.now());
|
||||
}
|
||||
|
||||
await saveCurrentSession();
|
||||
@@ -1067,7 +1069,7 @@ async function sendMessageWithAgentLoop(text: string, currentSession: ChatSessio
|
||||
updatedAt: Date.now()
|
||||
}));
|
||||
}
|
||||
updateLastAssistantMessage(assistantContent, thinkContent || null, loopStats || null);
|
||||
updateLastAssistantMessage(assistantContent, thinkContent || null, loopStats || null, undefined, Date.now(), toolRecords?.length ? toolRecords : undefined);
|
||||
} else {
|
||||
// 单迭代模式:正常保存
|
||||
const assistantMsg: ChatMessage = {
|
||||
@@ -1085,7 +1087,7 @@ async function sendMessageWithAgentLoop(text: string, currentSession: ChatSessio
|
||||
messages: [...session.messages, assistantMsg],
|
||||
updatedAt: Date.now()
|
||||
}));
|
||||
updateLastAssistantMessage(assistantContent, thinkContent || null, loopStats || null);
|
||||
updateLastAssistantMessage(assistantContent, thinkContent || null, loopStats || null, undefined, Date.now(), toolRecords?.length ? toolRecords : undefined);
|
||||
}
|
||||
renderMessages();
|
||||
await saveCurrentSession();
|
||||
|
||||
Reference in New Issue
Block a user