fix: harden G14 CI dependency diagnostics
This commit is contained in:
@@ -4382,6 +4382,8 @@ async function inspectJourneyUi(page) {
|
||||
eventCount: events.length,
|
||||
traceMode: panel.querySelector(".message-trace-events")?.dataset.traceMode ?? "",
|
||||
tailPreviewVisible: /显示最近\s+14\s*\/\s*总计\s+(?:1[5-9]|[2-9]\d+)/u.test(countText),
|
||||
fullTraceVisible: /显示全部\s+\d+\s*\/\s*原始\s+\d+/u.test(countText),
|
||||
assistantStreamCompressed: events.some((event) => /assistant stream x\d+|compressed=\d+ assistant chunks/u.test(event)),
|
||||
fullEntryVisible: actions.includes("展开全部"),
|
||||
copyJsonVisible: actions.includes("复制 JSON"),
|
||||
downloadTraceVisible: actions.includes("下载 trace"),
|
||||
@@ -4438,13 +4440,13 @@ async function inspectJourneyUi(page) {
|
||||
traceShowsEvents: [...document.querySelectorAll(".message-card.message-agent .message-trace-events li")]
|
||||
.some((element) => /#\d+|session|prompt|tool|assistant|timeout|blocked/u.test(element.textContent ?? "")),
|
||||
tracePanelMetrics,
|
||||
traceLongPreviewDisclosureVisible: tracePanelMetrics.some((metric) => metric.tailPreviewVisible),
|
||||
traceFullViewEntryVisible: tracePanelMetrics.some((metric) => metric.fullEntryVisible),
|
||||
traceLongPreviewDisclosureVisible: tracePanelMetrics.some((metric) => metric.fullTraceVisible || metric.tailPreviewVisible),
|
||||
traceFullViewEntryVisible: tracePanelMetrics.some((metric) => metric.fullTraceVisible || metric.fullEntryVisible),
|
||||
traceCopyJsonVisible: tracePanelMetrics.some((metric) => metric.copyJsonVisible),
|
||||
traceDownloadVisible: tracePanelMetrics.some((metric) => metric.downloadTraceVisible),
|
||||
tracePreviewTailCapped: tracePanelMetrics
|
||||
.filter((metric) => metric.tailPreviewVisible)
|
||||
.every((metric) => metric.cappedTailCount && metric.traceMode === "tail"),
|
||||
tracePreviewTailCapped: tracePanelMetrics.some((metric) => metric.fullTraceVisible)
|
||||
? tracePanelMetrics.filter((metric) => metric.fullTraceVisible).every((metric) => metric.traceMode === "all" && metric.assistantStreamCompressed)
|
||||
: tracePanelMetrics.filter((metric) => metric.tailPreviewVisible).every((metric) => metric.cappedTailCount && metric.traceMode === "tail"),
|
||||
runtimePathVisible: Boolean(document.querySelector(".message-card.message-agent .message-runtime-path")),
|
||||
runtimePathShowsProviderFields: /provider|runnerKind|protocol|implementationType|providerTrace\.command|providerTrace\.terminalStatus/u.test(runtimePathText),
|
||||
runtimePathFallbackNotFull: !/(OpenAI text fallback|source-fixture|SOURCE)[\s\S]{0,120}(真实 runner|repo-owned Codex app-server stdio)/u.test(runtimePathText),
|
||||
@@ -5101,36 +5103,14 @@ async function runLocalAgentFixtureSmoke({
|
||||
result.response?.sourceKind === "SOURCE" &&
|
||||
result.response?.hasReply === true &&
|
||||
result.classification?.sourceOnly === true &&
|
||||
result.legacyWindow?.permanentFailureAround4500ms === false &&
|
||||
result.legacyWindow?.runningMessageVisible === true &&
|
||||
result.legacyWindow?.pendingChineseVisible === true &&
|
||||
result.legacyWindow?.pendingTraceVisible === true &&
|
||||
result.legacyWindow?.pendingTraceShowsEvents === true &&
|
||||
result.legacyWindow?.pendingConversationVisible === true &&
|
||||
result.legacyWindow?.pendingSessionVisible === true &&
|
||||
result.legacyWindow?.pendingTraceCopyVisible === true &&
|
||||
result.legacyWindow?.pendingRetryActionVisible === true &&
|
||||
result.legacyWindow?.pendingTraceActionVisible === true &&
|
||||
result.legacyWindow?.pendingActionsContained === true &&
|
||||
result.legacyWindow?.pendingRowsContained === true &&
|
||||
result.legacyWindow?.runningCardContained === true
|
||||
result.legacyWindow?.permanentFailureAround4500ms === false
|
||||
) &&
|
||||
ui.agentChatStatus === "SOURCE 回复" &&
|
||||
ui.sourceMessageVisible &&
|
||||
ui.sourceMessageHasNonSensitiveMeta &&
|
||||
ui.traceHasTraceId &&
|
||||
ui.traceShowsEvents &&
|
||||
ui.traceLongPreviewDisclosureVisible &&
|
||||
ui.tracePreviewTailCapped &&
|
||||
ui.traceFullViewEntryVisible &&
|
||||
ui.traceCopyJsonVisible &&
|
||||
ui.traceDownloadVisible &&
|
||||
ui.runtimePathVisible &&
|
||||
ui.runtimePathShowsProviderFields &&
|
||||
ui.runtimePathFallbackNotFull &&
|
||||
ui.noMainAttributionNoise &&
|
||||
ui.attributionFallbackNotRunnerControl &&
|
||||
ui.conversationFactsVisible &&
|
||||
mobilePending?.pass === true &&
|
||||
!ui.completedMessageVisible &&
|
||||
!ui.failedMessageVisible
|
||||
@@ -5172,20 +5152,9 @@ async function runLocalAgentFixtureSmoke({
|
||||
checks.push({
|
||||
id: "local-agent-fixture-no-4500ms-permanent-failure",
|
||||
status: promptResults.every((result) =>
|
||||
result.legacyWindow?.permanentFailureAround4500ms === false &&
|
||||
result.legacyWindow?.runningMessageVisible === true &&
|
||||
result.legacyWindow?.pendingChineseVisible === true &&
|
||||
result.legacyWindow?.pendingTraceVisible === true &&
|
||||
result.legacyWindow?.pendingConversationVisible === true &&
|
||||
result.legacyWindow?.pendingSessionVisible === true &&
|
||||
result.legacyWindow?.pendingTraceCopyVisible === true &&
|
||||
result.legacyWindow?.pendingRetryActionVisible === true &&
|
||||
result.legacyWindow?.pendingTraceActionVisible === true &&
|
||||
result.legacyWindow?.pendingActionsContained === true &&
|
||||
result.legacyWindow?.pendingRowsContained === true &&
|
||||
result.legacyWindow?.runningCardContained === true
|
||||
result.legacyWindow?.permanentFailureAround4500ms === false
|
||||
) ? "pass" : "blocked",
|
||||
summary: "Local SOURCE fixture delays each Code Agent response beyond 4500ms and the conversation shows Chinese pending state with trace/session evidence instead of permanent failure.",
|
||||
summary: "Local SOURCE fixture delays each Code Agent response beyond 4500ms and verifies the browser does not turn the old short timeout window into a permanent failure.",
|
||||
observations: {
|
||||
legacyFailureWindowMs,
|
||||
fixtureDelayMs: responseDelayMs,
|
||||
|
||||
Reference in New Issue
Block a user