diff --git a/web/static/js/chat.js b/web/static/js/chat.js
index 01e67e2d..1cb59561 100644
--- a/web/static/js/chat.js
+++ b/web/static/js/chat.js
@@ -3572,39 +3572,14 @@ function getCachedToolExecutionSummaries(messageElement) {
}
}
-/**
- * 过程摘要中的早期/快速工具结果可能没有 executionId,但消息本身会按调用顺序保存 ID。
- * 合并两份数据,避免渲染摘要时丢失可用的弹窗详情入口。
- */
-function mergeToolExecutionSummariesWithIds(summaries, executionIds) {
- const normalizedSummaries = Array.isArray(summaries)
- ? summaries.map(normalizeToolExecutionSummaryForButton)
- : [];
- const normalizedIds = normalizeMcpExecutionIds(executionIds);
- const claimedIds = new Set(
- normalizedSummaries.map((item) => item.executionId).filter(Boolean)
- );
- const fallbackIds = normalizedIds.filter((id) => !claimedIds.has(id));
- let fallbackIndex = 0;
- return normalizedSummaries.map((item) => {
- if (item.executionId || fallbackIndex >= fallbackIds.length) return item;
- return {
- ...item,
- executionId: fallbackIds[fallbackIndex++]
- };
- });
-}
-
function selectToolExecutionSummariesForButtons(summaries, executionIds) {
const normalizedSummaries = Array.isArray(summaries)
? summaries.map(normalizeToolExecutionSummaryForButton)
: [];
const normalizedIds = normalizeMcpExecutionIds(executionIds);
+ if (normalizedSummaries.length > 0) return normalizedSummaries;
if (normalizedIds.length === 0) return normalizedSummaries;
- if (normalizedSummaries.length === 0) {
- return normalizedIds.map((executionId) => normalizeToolExecutionSummaryForButton({ executionId }));
- }
- return mergeToolExecutionSummariesWithIds(normalizedSummaries, normalizedIds);
+ return normalizedIds.map((executionId) => normalizeToolExecutionSummaryForButton({ executionId }));
}
function setPendingToolExecutionSummaries(messageElement, summaries) {
@@ -3819,10 +3794,6 @@ async function findToolExecutionTimelineItem(messageElement, summary, index) {
if (!target && item.toolCallId) {
target = timeline.querySelector('[data-tool-call-id="' + cssEscapeValue(item.toolCallId) + '"]');
}
- if (!target) {
- const toolItems = timeline.querySelectorAll('.timeline-item-tool_call');
- target = toolItems[index] || null;
- }
if (!target && item.processDetailId && messageElement.dataset && messageElement.dataset.backendMessageId && typeof window.loadProcessDetailsPaginated === 'function') {
await window.loadProcessDetailsPaginated(messageElement.id, messageElement.dataset.backendMessageId, {
autoLoadAll: false,
@@ -3995,11 +3966,7 @@ async function openTaskToolExecutionDetail(messageElement, item, index) {
let detailItem = item;
if (!detailItem.executionId) {
const refreshedItem = await resolveToolExecutionSummaryForFocus(messageElement, '', index);
- const mergedItems = mergeToolExecutionSummariesWithIds(
- getCachedToolExecutionSummaries(messageElement),
- getCachedMcpExecutionIds(messageElement)
- );
- detailItem = mergedItems[index] || refreshedItem || detailItem;
+ detailItem = refreshedItem || detailItem;
}
if (detailItem.executionId) {
await showMCPDetail(detailItem.executionId);
diff --git a/web/templates/index.html b/web/templates/index.html
index 2e488084..b18adcea 100644
--- a/web/templates/index.html
+++ b/web/templates/index.html
@@ -6676,7 +6676,7 @@
-
+