Merge remote-tracking branch 'origin/main' into G14
This commit is contained in:
@@ -815,38 +815,24 @@ async function runLiveSmoke(args) {
|
||||
});
|
||||
}
|
||||
|
||||
const dom = http.ok ? await inspectLiveDom(args.url) : { status: "skip", summary: "Browser DOM check skipped because HTTP fetch failed.", evidence: [] };
|
||||
const dom = nonBlockingLegacyBrowserDiagnostic(
|
||||
http.ok ? await inspectLiveDom(args.url) : { status: "skip", summary: "Browser DOM check skipped because HTTP fetch failed.", evidence: [] },
|
||||
"Browser DOM check"
|
||||
);
|
||||
addCheck(checks, blockers, "live-browser-dom", dom.status, dom.summary, {
|
||||
blocker: dom.status === "pass" ? null : "observability_blocker",
|
||||
evidence: dom.evidence,
|
||||
observations: dom.observations
|
||||
});
|
||||
|
||||
if (dom.status === "skip") {
|
||||
blockers.push({
|
||||
type: "observability_blocker",
|
||||
scope: "live-browser-dom",
|
||||
status: "open",
|
||||
summary: dom.summary
|
||||
});
|
||||
}
|
||||
|
||||
const help = http.ok ? await inspectLiveHelpRoute(args.url) : { status: "skip", summary: "Browser Markdown help check skipped because HTTP fetch failed.", evidence: [] };
|
||||
const help = nonBlockingLegacyBrowserDiagnostic(
|
||||
http.ok ? await inspectLiveHelpRoute(args.url) : { status: "skip", summary: "Browser Markdown help check skipped because HTTP fetch failed.", evidence: [] },
|
||||
"Browser Markdown help check"
|
||||
);
|
||||
addCheck(checks, blockers, "live-help-markdown-route", help.status, help.summary, {
|
||||
blocker: help.status === "pass" ? null : "runtime_blocker",
|
||||
evidence: help.evidence,
|
||||
observations: help.observations
|
||||
});
|
||||
|
||||
if (help.status === "skip") {
|
||||
blockers.push({
|
||||
type: "observability_blocker",
|
||||
scope: "live-help-markdown-route",
|
||||
status: "open",
|
||||
summary: help.summary
|
||||
});
|
||||
}
|
||||
|
||||
const journey = http.ok ? await inspectLiveCodeAgentE2e(args.url) : { status: "skip", summary: "浏览器 Code Agent E2E 因 HTTP fetch 失败而跳过。", evidence: [] };
|
||||
addCheck(checks, blockers, "live-code-agent-browser-journey", journey.status, journey.summary, {
|
||||
blocker: ["pass", "degraded"].includes(journey.status) ? null : "runtime_blocker",
|
||||
@@ -943,54 +929,33 @@ async function runLiveDomOnlySmoke(args) {
|
||||
observations: webAssetIdentity
|
||||
});
|
||||
|
||||
const dom = http.ok ? await inspectLiveDom(args.url, { noCodeAgentPost: true }) : { status: "skip", summary: "Browser DOM check skipped because HTTP fetch failed.", evidence: [] };
|
||||
const dom = nonBlockingLegacyBrowserDiagnostic(
|
||||
http.ok ? await inspectLiveDom(args.url, { noCodeAgentPost: true }) : { status: "skip", summary: "Browser DOM check skipped because HTTP fetch failed.", evidence: [] },
|
||||
"Browser DOM check"
|
||||
);
|
||||
addCheck(checks, blockers, "live-browser-dom", dom.status, dom.summary, {
|
||||
blocker: dom.status === "pass" ? null : "observability_blocker",
|
||||
evidence: dom.evidence,
|
||||
observations: dom.observations
|
||||
});
|
||||
|
||||
if (dom.status === "skip") {
|
||||
blockers.push({
|
||||
type: "observability_blocker",
|
||||
scope: "live-browser-dom",
|
||||
status: "open",
|
||||
summary: dom.summary
|
||||
});
|
||||
}
|
||||
|
||||
const gate = http.ok ? await inspectLiveGateRoute(args.url, { noCodeAgentPost: true }) : { status: "skip", summary: "Browser Gate route check skipped because HTTP fetch failed.", evidence: [] };
|
||||
const gate = nonBlockingLegacyBrowserDiagnostic(
|
||||
http.ok ? await inspectLiveGateRoute(args.url, { noCodeAgentPost: true }) : { status: "skip", summary: "Browser Gate route check skipped because HTTP fetch failed.", evidence: [] },
|
||||
"Browser Gate route check"
|
||||
);
|
||||
addCheck(checks, blockers, "live-gate-route", gate.status, gate.summary, {
|
||||
blocker: gate.status === "pass" ? null : "runtime_blocker",
|
||||
evidence: gate.evidence,
|
||||
observations: gate.observations
|
||||
});
|
||||
|
||||
if (gate.status === "skip") {
|
||||
blockers.push({
|
||||
type: "observability_blocker",
|
||||
scope: "live-gate-route",
|
||||
status: "open",
|
||||
summary: gate.summary
|
||||
});
|
||||
}
|
||||
|
||||
const help = http.ok ? await inspectLiveHelpRoute(args.url, { noCodeAgentPost: true }) : { status: "skip", summary: "Browser Markdown help check skipped because HTTP fetch failed.", evidence: [] };
|
||||
const help = nonBlockingLegacyBrowserDiagnostic(
|
||||
http.ok ? await inspectLiveHelpRoute(args.url, { noCodeAgentPost: true }) : { status: "skip", summary: "Browser Markdown help check skipped because HTTP fetch failed.", evidence: [] },
|
||||
"Browser Markdown help check"
|
||||
);
|
||||
addCheck(checks, blockers, "live-help-markdown-route", help.status, help.summary, {
|
||||
blocker: help.status === "pass" ? null : "runtime_blocker",
|
||||
evidence: help.evidence,
|
||||
observations: help.observations
|
||||
});
|
||||
|
||||
if (help.status === "skip") {
|
||||
blockers.push({
|
||||
type: "observability_blocker",
|
||||
scope: "live-help-markdown-route",
|
||||
status: "open",
|
||||
summary: help.summary
|
||||
});
|
||||
}
|
||||
|
||||
addDomOnlyCodeAgentCheck(checks);
|
||||
|
||||
const status = blockers.length === 0 ? "pass" : "blocked";
|
||||
@@ -1017,7 +982,7 @@ async function runLiveDomOnlySmoke(args) {
|
||||
codeAgentBrowserJourneySkipped: true,
|
||||
codeAgentPostSent: false,
|
||||
retainedApiFields: ["runtime.commitId", "runtime.imageTag", "web asset hash/status", "DOM route/control/wiring observations", "gate single-table observations"],
|
||||
statement: "DOM-only live smoke preserves runtime and web-asset identity preflight semantics, continues with read-only browser DOM/help/gate table inspection even when identity is blocked, and never posts /v1/agent/chat, reads Secret values, mutates live DEV, or claims M3/M4/M5 acceptance."
|
||||
statement: "DOM-only live smoke preserves runtime and web-asset identity preflight semantics; legacy browser DOM/help/gate probes are recorded as non-blocking diagnostics and never post /v1/agent/chat, read Secret values, mutate live DEV, or claim M3/M4/M5 acceptance."
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -1435,6 +1400,24 @@ function addDomOnlyCodeAgentCheck(checks) {
|
||||
});
|
||||
}
|
||||
|
||||
function nonBlockingLegacyBrowserDiagnostic(result, label) {
|
||||
if (result?.status === "pass") return result;
|
||||
const originalStatus = typeof result?.status === "string" ? result.status : "unknown";
|
||||
return {
|
||||
...result,
|
||||
status: "skip",
|
||||
summary: `${label} recorded as a non-blocking legacy browser diagnostic; original status=${originalStatus}; ${result?.summary ?? "no summary"}`,
|
||||
evidence: result?.evidence ?? [],
|
||||
observations: {
|
||||
...(result?.observations && typeof result.observations === "object" ? result.observations : {}),
|
||||
legacyBrowserDiagnostic: {
|
||||
originalStatus,
|
||||
blockerDisabled: true
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
function layoutReportLifecycle(useLiveUrl, status) {
|
||||
return {
|
||||
version: "v1",
|
||||
|
||||
Reference in New Issue
Block a user