diff --git a/web/hwlab-cloud-web/scripts/check.ts b/web/hwlab-cloud-web/scripts/check.ts index 1d84b25c..88ad399e 100644 --- a/web/hwlab-cloud-web/scripts/check.ts +++ b/web/hwlab-cloud-web/scripts/check.ts @@ -35,6 +35,7 @@ const requiredFiles = Object.freeze([ "src/components/layout/AppShell.vue", "src/components/layout/TablePageLayout.vue", "src/components/common/EmptyState.vue", + "src/components/workbench/MessageTraceDebugPanel.vue", "src/views/workbench/CodeWorkbenchView.vue", "src/views/admin/AccessView.vue", "src/views/admin/ProviderProfilesView.vue", @@ -57,6 +58,8 @@ for (const file of requiredFiles) { const html = readWeb("index.html"); const pkg = JSON.parse(readWeb("package.json")) as { dependencies?: Record; devDependencies?: Record }; const appSource = readCloudWebAppSource(rootDir); +const traceTimelineSource = readWeb("src/components/agent/TraceTimeline.vue"); +const messageTraceDebugSource = readWeb("src/components/workbench/MessageTraceDebugPanel.vue"); assert.match(html, /
<\/div>/u, "index.html must expose Vue mount root"); assert.match(html, /src="\/src\/main\.ts"/u, "index.html must load Vue TS entry"); @@ -98,7 +101,9 @@ assertIncludes(appSource, "/v1/agent/chat/trace/", "trace replay must use Cloud assertIncludes(appSource, "/v1/workbench/workspace", "workspace bootstrap must use Cloud Web same-origin workbench API"); assert.doesNotMatch(appSource, /\/auth\/workspace-bootstrap/u, "stale auth workspace bootstrap route must not remain in Cloud Web app source"); assert.doesNotMatch(appSource, /trace-meta-details/u, "Trace details must not render a second message-detail exclamation button"); -assertIncludes(appSource, "trace-meta-panel", "Trace identity and raw-event controls must remain in the expanded trace body"); +assert.doesNotMatch(traceTimelineSource, /trace-meta-panel|trace-summary-chip|trace-meta-actions|原始事件|traceEventLabel/u, "Expanded TraceTimeline body must not render debug identity or raw-event controls"); +assertIncludes(appSource, "MessageTraceDebugPanel", "Message details dialog must mount the trace debug panel behind the top-right details button"); +assertIncludes(messageTraceDebugSource, "trace-meta-panel", "Trace identity and raw-event controls must live inside message details"); assertIncludes(appSource, "scrollbar-width: none;", "Platform sidebar must scroll without a visible scrollbar"); assertIncludes(appSource, "border-collapse: collapse;", "Markdown tables must use GitHub-like bordered table styling"); assertIncludes(appSource, "grid-template-columns: minmax(0, 1fr);", "Trace rows must give the readable body the full content width"); diff --git a/web/hwlab-cloud-web/src/components/agent/TraceTimeline.vue b/web/hwlab-cloud-web/src/components/agent/TraceTimeline.vue index e66694cd..367f4bfb 100644 --- a/web/hwlab-cloud-web/src/components/agent/TraceTimeline.vue +++ b/web/hwlab-cloud-web/src/components/agent/TraceTimeline.vue @@ -1,36 +1,18 @@