diff --git a/web/static/css/style.css b/web/static/css/style.css index 71538980..338b3ebb 100644 --- a/web/static/css/style.css +++ b/web/static/css/style.css @@ -21029,7 +21029,7 @@ tr.mcp-stats-tool-row[data-tool-name]:focus-visible { margin-bottom: 8px; } .webshell-ai-process-block.process-details-container { - /* 让“渗透测试详情”视觉上跟随助手气泡宽度,而不是强行 100% 宽 */ + /* 让“任务执行详情”视觉上跟随助手气泡宽度,而不是强行 100% 宽 */ width: auto; max-width: 80%; align-self: flex-start; @@ -33492,10 +33492,11 @@ html[data-theme="dark"] .timeline-item-tool_call.tool-call-failed:hover { html[data-theme="dark"] .timeline-item-tool_call .tool-args, html[data-theme="dark"] .timeline-item-tool_call .tool-result, html[data-theme="dark"] .timeline-item-tool_result .tool-result { - background: rgba(51, 65, 85, 0.52); - border-color: rgba(148, 163, 184, 0.28); + /* 工具参数与结果沿用外层卡片底色,不再额外铺一层色块。 */ + background: transparent !important; + border-color: rgba(148, 163, 184, 0.2) !important; color: #dbe4f0; - box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.035); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.025); } html[data-theme="dark"] .timeline-item-tool_call:has(.tool-result-section.success) .tool-args, diff --git a/web/static/i18n/en-US.json b/web/static/i18n/en-US.json index 515af376..e6853e31 100644 --- a/web/static/i18n/en-US.json +++ b/web/static/i18n/en-US.json @@ -569,7 +569,7 @@ "searchInGroup": "Search in group...", "loadingTools": "Loading tools...", "noMatchTools": "No matching tools", - "penetrationTestDetail": "Penetration test details", + "penetrationTestDetail": "Task execution details", "expandDetail": "Expand details", "expandDetailLazyHint": "Expand details (loads iteration details on click)", "viewToolDetail": "View details", diff --git a/web/static/i18n/zh-CN.json b/web/static/i18n/zh-CN.json index 0ed52913..c2c6c421 100644 --- a/web/static/i18n/zh-CN.json +++ b/web/static/i18n/zh-CN.json @@ -557,7 +557,7 @@ "searchInGroup": "搜索分组中的对话...", "loadingTools": "正在加载工具...", "noMatchTools": "没有匹配的工具", - "penetrationTestDetail": "渗透测试详情", + "penetrationTestDetail": "任务执行详情", "expandDetail": "展开详情", "expandDetailLazyHint": "展开详情(点击后加载迭代详情)", "viewToolDetail": "查看详情", diff --git a/web/static/js/chat.js b/web/static/js/chat.js index 0ab00d67..d925683d 100644 --- a/web/static/js/chat.js +++ b/web/static/js/chat.js @@ -3137,12 +3137,12 @@ function ensureMcpCallSectionChrome(messageElement, messageId) { mcpSection.className = 'mcp-call-section'; const mcpLabel = document.createElement('div'); mcpLabel.className = 'mcp-call-label'; - mcpLabel.textContent = '📋 ' + (typeof window.t === 'function' ? window.t('chat.penetrationTestDetail') : '渗透测试详情'); + mcpLabel.textContent = '📋 ' + (typeof window.t === 'function' ? window.t('chat.penetrationTestDetail') : '任务执行详情'); mcpSection.appendChild(mcpLabel); contentWrapper.appendChild(mcpSection); } else { const mcpLabel = mcpSection.querySelector('.mcp-call-label'); - const labelText = '📋 ' + (typeof window.t === 'function' ? window.t('chat.penetrationTestDetail') : '渗透测试详情'); + const labelText = '📋 ' + (typeof window.t === 'function' ? window.t('chat.penetrationTestDetail') : '任务执行详情'); if (mcpLabel && mcpLabel.textContent !== labelText) { mcpLabel.textContent = labelText; } diff --git a/web/static/js/monitor.js b/web/static/js/monitor.js index 18da54c1..7af4ad04 100644 --- a/web/static/js/monitor.js +++ b/web/static/js/monitor.js @@ -1379,7 +1379,7 @@ const PROCESS_DETAILS_PAGE_SIZE = 50; function getProcessDetailsLoadMoreLabel(hasMore) { if (!hasMore) return ''; return (typeof window.t === 'function' ? window.t('common.loadMore') : '加载更多') + ' · ' + - (typeof window.t === 'function' ? window.t('chat.penetrationTestDetail') : '过程详情'); + (typeof window.t === 'function' ? window.t('chat.penetrationTestDetail') : '任务执行详情'); } function updateProcessDetailsLoadMoreButton(assistantMessageId, backendMessageId, hasMore) { @@ -6535,7 +6535,7 @@ function refreshProgressAndTimelineI18n() { titleEl.textContent = '\uD83D\uDD0D ' + translateProgressMessage(raw, pdata); } }); - // 转换后的详情区顶栏「渗透测试详情」:仅刷新不在 .progress-message 内的 progress 标题 + // 转换后的详情区顶栏「任务执行详情」:仅刷新不在 .progress-message 内的 progress 标题 document.querySelectorAll('.progress-container .progress-header .progress-title').forEach(function (titleEl) { if (titleEl.closest('.progress-message')) return; titleEl.textContent = '\uD83D\uDCCB ' + _t('chat.penetrationTestDetail'); diff --git a/web/static/js/webshell.js b/web/static/js/webshell.js index 9dd0028f..420fa8ff 100644 --- a/web/static/js/webshell.js +++ b/web/static/js/webshell.js @@ -2003,7 +2003,7 @@ function renderWebshellProcessDetailsBlock(processDetails, defaultCollapsed) { } var expandLabel = (typeof window.t === 'function') ? window.t('chat.expandDetail') : '展开详情'; var collapseLabel = (typeof window.t === 'function') ? window.t('tasks.collapseDetail') : '收起详情'; - var headerLabel = (typeof window.t === 'function') ? (window.t('chat.penetrationTestDetail') || '执行过程及调用工具') : '执行过程及调用工具'; + var headerLabel = (typeof window.t === 'function') ? (window.t('chat.penetrationTestDetail') || '任务执行详情') : '任务执行详情'; var wrapper = document.createElement('div'); wrapper.className = 'process-details-container webshell-ai-process-block'; var collapsed = defaultCollapsed !== false; @@ -3533,7 +3533,7 @@ function runWebshellAiSend(conn, inputEl, sendBtn, messagesContainer) { } // 生成结果后:将执行过程折叠并保留,供后续查看;统一放在「助手回复下方」(与刷新后加载历史一致,最佳实践) if (timelineContainer && timelineContainer.classList.contains('has-items') && !timelineContainer.closest('.webshell-ai-process-block')) { - var headerLabel = (typeof window.t === 'function') ? (window.t('chat.penetrationTestDetail') || '执行过程及调用工具') : '执行过程及调用工具'; + var headerLabel = (typeof window.t === 'function') ? (window.t('chat.penetrationTestDetail') || '任务执行详情') : '任务执行详情'; var wrap = document.createElement('div'); wrap.className = 'process-details-container webshell-ai-process-block'; wrap.innerHTML = '
';