From 6bb3365ab34325a52443a898b41516bf3ecb6070 Mon Sep 17 00:00:00 2001 From: Codex Date: Sat, 20 Jun 2026 18:12:55 +0000 Subject: [PATCH] fix(web-probe): expose chat request failure reason --- .../hwlab-node-web-observe-runner-source.ts | 23 +++++++++++-------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/scripts/src/hwlab-node-web-observe-runner-source.ts b/scripts/src/hwlab-node-web-observe-runner-source.ts index 533244cf..60997180 100644 --- a/scripts/src/hwlab-node-web-observe-runner-source.ts +++ b/scripts/src/hwlab-node-web-observe-runner-source.ts @@ -850,16 +850,19 @@ function buildPromptNetworkReport(control, network) { prompts.forEach((item, index) => { item.promptIndex = index + 1; }); const chatEvents = network .filter((item) => String(item?.method || "").toUpperCase() === "POST" && /\/v1\/agent\/chat(?:\?|$)/u.test(String(item?.url || ""))) - .map((item) => ({ - ts: item.ts ?? null, - tsMs: Date.parse(item.ts), - type: item.type ?? null, - status: Number.isFinite(Number(item.status)) ? Number(item.status) : null, - commandId: item.commandId ?? null, - urlPath: urlPath(item.url), - failureKind: item.failureKind ?? null, - errorTextHash: item.errorText ? sha256(item.errorText) : null - })) + .map((item) => { + const failureText = item.failureKind ?? item.failure ?? item.errorText ?? null; + return { + ts: item.ts ?? null, + tsMs: Date.parse(item.ts), + type: item.type ?? null, + status: Number.isFinite(Number(item.status)) ? Number(item.status) : null, + commandId: item.commandId ?? null, + urlPath: urlPath(item.url), + failureKind: failureText ? String(failureText) : null, + errorTextHash: failureText ? sha256(failureText) : null + }; + }) .filter((item) => Number.isFinite(item.tsMs)) .sort((a, b) => a.tsMs - b.tsMs); const rounds = prompts.map((prompt) => {