fix(cli): compact gh view and web-probe failures

This commit is contained in:
Codex
2026-06-20 10:11:24 +00:00
parent a2ec41cc63
commit 6d0054c78c
3 changed files with 63 additions and 16 deletions
@@ -44,7 +44,7 @@ try {
if (fn === null) throw new Error("custom script must export default, run, or probe function");
const scriptResult = await fn(scriptHelpers());
const safeResult = sanitize(scriptResult);
const scriptOk = !(safeResult && typeof safeResult === "object" && safeResult.ok === false);
const scriptOk = scriptResultOk(safeResult);
const failure = scriptOk ? null : classifiedProbeError(assertionResultError(safeResult));
const lastScreenshot = scriptOk ? null : await captureFailureScreenshot("failure.png");
const lastUrl = currentPageUrl();
@@ -1399,15 +1399,31 @@ function stableProbeError(code, message, readiness) {
}
function assertionResultError(value) {
const message = extractFailureMessage(value) || "script returned ok:false";
const message = extractFailureMessage(value) || scriptFailureSignalMessage(value) || "script returned a failure result";
const error = new Error(message);
error.code = "assertion-failed";
return error;
}
function scriptResultOk(value) {
if (!value || typeof value !== "object") return true;
if (value.ok === false) return false;
if (value.pass === false) return false;
if (value.success === false) return false;
return true;
}
function scriptFailureSignalMessage(value) {
if (!value || typeof value !== "object") return null;
if (value.pass === false) return "script returned pass:false";
if (value.success === false) return "script returned success:false";
if (value.ok === false) return "script returned ok:false";
return null;
}
function extractFailureMessage(value) {
if (!value || typeof value !== "object") return null;
for (const key of ["errorMessage", "message", "error", "reason", "summary"]) {
for (const key of ["failedCondition", "errorMessage", "message", "error", "reason", "summary"]) {
const nested = value[key];
if (typeof nested === "string" && nested.length > 0) return nested;
}