fix: use activity timeout for code agent turns

This commit is contained in:
Code Queue Review
2026-05-24 10:10:34 +00:00
parent 637593a5e0
commit 8c5f25d0e5
10 changed files with 563 additions and 54 deletions
+2 -2
View File
@@ -18,7 +18,7 @@ const blockedCodeAgentUiLabels = new Set([
"仍是 fallback",
"BLOCKED 凭证缺口"
]);
const timeoutPattern = /\b(?:timeout|timed out|abort|aborted|超时|请求超过)\b/iu;
const timeoutPattern = /\b(?:timeout|timed out|abort|aborted|超时|请求超过|无新事件)\b/iu;
export function classifyCodeAgentChatReadiness(payload, { realDevLive = false, httpStatus = null } = {}) {
const providerBlock = classifyCodeAgentProviderBlock(payload, { httpStatus });
@@ -547,7 +547,7 @@ export function classifyCodeAgentBrowserFailure(error, { traceId = null } = {})
status: "blocked",
blocker: "timeout",
category: "timeout",
chineseSummary: `超时:Code Agent 请求在配置的时间边界内没有完成${observedTraceId ? `traceId=${observedTraceId}` : ""}`,
chineseSummary: `超时:Code Agent 在配置的活动时间边界内没有新事件${observedTraceId ? `traceId=${observedTraceId}` : ""}`,
reason: message
};
}
@@ -2675,7 +2675,7 @@ function hasCodeAgentConversationUxStates({ app, styles }) {
/旧 4500ms/u.test(app) &&
/结构化 blocker/u.test(app) &&
/sourceKind:\s*"PENDING"/u.test(app) &&
/Code Agent 请求超过/u.test(app) &&
/Code Agent 超过.*无新事件/u.test(app) &&
/Code Agent SOURCE 回复/u.test(app) &&
/SOURCE fixture 只可显示为 SOURCE 回复,不能冒充 DEV-LIVE/u.test(app) &&
/sourceKind:\s*completion\.sourceKind/u.test(submitBody) &&
@@ -4302,7 +4302,7 @@ async function inspectJourneyUi(page) {
sourceMessageVisible: Boolean(document.querySelector(".message-card.status-source")),
failedMessageVisible: Boolean(document.querySelector(".message-card.status-failed")),
failedMessageHasTrace: /trace=trc_/u.test(failedText),
failedMessageHasChineseTimeout: /请求超过|请求超时|保留输入|重试/u.test(failedText),
failedMessageHasChineseTimeout: /无新事件|请求超时|保留输入|重试/u.test(failedText),
runningMessageVisible: Boolean(document.querySelector(".message-card.status-running")),
pendingMessageText: pendingText.replace(/\s+/gu, " ").trim(),
pendingMessageChinese: /正在处理|后端处理中|不会把旧 4500ms|结构化 blocker|真实超时/u.test(pendingText),
@@ -4417,7 +4417,7 @@ async function inspectLegacyFailureWindow(page, { beforeMessageCount }) {
function backendTimeoutMsFromPayload(payload) {
const message = String(payload?.error?.message ?? "");
const match = message.match(/(?:timed out after|timeout after|请求超时|请求超过)\s*(\d+)\s*ms/iu);
const match = message.match(/(?:timed out after|timeout after|请求超时|请求超过|超过)\s*(\d+)\s*ms/iu);
if (!match) return null;
const value = Number.parseInt(match[1], 10);
return Number.isInteger(value) && value > 0 ? value : null;