From b1ae0b6408076e6e1ec58ad04c9385b903ad3334 Mon Sep 17 00:00:00 2001 From: Lyon <88232613+pikasTech@users.noreply.github.com> Date: Mon, 22 Jun 2026 02:44:34 +0800 Subject: [PATCH] fix: expose web-probe diagnostic previews (#623) Co-authored-by: Codex --- scripts/src/hwlab-node-impl.ts | 12 +++++++++--- scripts/src/hwlab-node-web-observe-runner-source.ts | 10 +++++++++- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/scripts/src/hwlab-node-impl.ts b/scripts/src/hwlab-node-impl.ts index 00724bbe..8d0c9c05 100644 --- a/scripts/src/hwlab-node-impl.ts +++ b/scripts/src/hwlab-node-impl.ts @@ -7075,7 +7075,7 @@ function runNodeWebProbeObserveStatus(options: NodeWebProbeObserveOptions, spec: observer: withWebObserveShortcuts(status, observerId), index, next: observerId === null ? null : webObserveNextCommands(observerId), - result: compactCommandResult(result), + result: compactCommandResultWithStdoutTail(result), valuesRedacted: true, }); } @@ -7308,7 +7308,7 @@ function runNodeWebProbeObserveCollect(options: NodeWebProbeObserveOptions, spec lane: options.lane, workspace: spec.workspace, collect, - result: compactCommandResult(result), + result: compactCommandResultWithStdoutTail(result), valuesRedacted: true, }; } @@ -11268,12 +11268,18 @@ function compactCommandResult(result: CommandResult): Record { command: compactCommand(result.command), exitCode: result.exitCode, stdoutBytes: result.stdout.length, - stdoutTail: result.stdout.trim().slice(-2000), + stdoutTail: result.exitCode === 0 && !result.timedOut ? "" : result.stdout.trim().slice(-2000), stderr: result.exitCode === 0 ? "" : result.stderr.trim().slice(0, 2000), timedOut: result.timedOut, }; } +function compactCommandResultWithStdoutTail(result: CommandResult): Record { + const compact = compactCommandResult(result); + compact.stdoutTail = result.stdout.trim().slice(-2000); + return compact; +} + function compactCommandResultRedacted(result: CommandResult, secrets: string[]): Record { const compact = compactCommandResult(result); if (typeof compact.stderr === "string" && compact.stderr.length > 0) { diff --git a/scripts/src/hwlab-node-web-observe-runner-source.ts b/scripts/src/hwlab-node-web-observe-runner-source.ts index 0c196acc..938332b9 100644 --- a/scripts/src/hwlab-node-web-observe-runner-source.ts +++ b/scripts/src/hwlab-node-web-observe-runner-source.ts @@ -1100,7 +1100,15 @@ console.log(JSON.stringify({ pagePerformance: pagePerformance.summary, promptNetwork: promptNetwork.summary, runtimeAlerts: runtimeAlerts.summary, - domDiagnosticGroups: runtimeAlerts.domDiagnosticsByFingerprint.slice(0, 5).map((item) => ({ count: item.count, firstAt: item.firstAt, lastAt: item.lastAt, text: String(item.text ?? "").slice(0, 160) })), + domDiagnosticGroups: runtimeAlerts.domDiagnosticsByFingerprint.slice(0, 5).map((item) => ({ + diagnosticCode: item.diagnosticCode ?? null, + count: item.count, + firstAt: item.firstAt, + lastAt: item.lastAt, + promptIndexes: Array.isArray(item.promptIndexes) ? item.promptIndexes.slice(0, 6) : [], + traceIds: Array.isArray(item.traceIds) ? item.traceIds.slice(0, 4) : [], + text: String(item.preview ?? item.normalizedPreview ?? item.text ?? "").slice(0, 160), + })), pagePerformanceSlowApi: pagePerformance.sameOriginApiByPath.filter((item) => item.overFiveSecondCount > 0).slice(0, 5).map((item) => ({ path: item.path, route: item.route, sampleCount: item.sampleCount, p95Ms: item.p95Ms, maxMs: item.maxMs, overFiveSecondCount: item.overFiveSecondCount })), findings: findings.slice(0, 8).map((item) => ({ kind: item.id ?? item.kind ?? item.code, severity: item.severity, count: item.count ?? item.sampleCount ?? null, summary: String(item.summary ?? item.message ?? "").slice(0, 180) })), valuesRedacted: true,