fix: 收敛 WebProbe 物理内存与资源上限
This commit is contained in:
@@ -379,7 +379,7 @@ async function authenticate(browserContext) {
|
||||
await writeHeartbeat({ status: terminalStatus, auth: { phase: "api-login", lastRetryLabel: item?.retryLabel || retryLabel, retryAttempt: attempt, retryMaxAttempts: maxAttempts, retryDelayMs: item?.retryDelayMs ?? 0, lastStatus: item?.status ?? 0, lastStatusText: item?.statusText ?? "request-error", retryable, cookiePresent: false, retryExhausted: false, lastError: item?.error || null, valuesRedacted: true } }).catch(() => {});
|
||||
if (!retryable) break;
|
||||
}
|
||||
if (attempt < maxAttempts && attempts[attempts.length - 1]?.retryable === true) await sleep(retryDelayMs);
|
||||
if (attempt < maxAttempts && attempts[attempts.length - 1]?.retryable === true) await interruptibleRunnerSleep(retryDelayMs);
|
||||
}
|
||||
const cookieState = await readAuthCookieState(browserContext);
|
||||
const last = attempts[attempts.length - 1] || null;
|
||||
@@ -414,12 +414,13 @@ async function pageAuthLogin(browserContext, loginUrl, credential = { username,
|
||||
headers: { accept: "application/json", "content-type": "application/json" },
|
||||
timeout: authLoginRequestTimeoutMs,
|
||||
});
|
||||
await response.text().catch(() => "");
|
||||
return {
|
||||
const result = {
|
||||
ok: response.ok(),
|
||||
status: response.status(),
|
||||
statusText: response.statusText() || "",
|
||||
};
|
||||
if (typeof response.dispose === "function") await response.dispose().catch(() => {});
|
||||
return result;
|
||||
}
|
||||
|
||||
async function loginAccount(command) {
|
||||
@@ -479,7 +480,7 @@ async function loginAccount(command) {
|
||||
cookieState = await readAuthCookieState(context).catch(() => ({ cookiePresent: false, cookieNames: [] }));
|
||||
if (!retryable) break;
|
||||
}
|
||||
if (attempt < maxAttempts && attempts[attempts.length - 1]?.retryable === true) await sleep(retryDelayMs);
|
||||
if (attempt < maxAttempts && attempts[attempts.length - 1]?.retryable === true) await interruptibleRunnerSleep(retryDelayMs);
|
||||
}
|
||||
response = response ?? { ok: false, status: 0, statusText: "api-login-failed" };
|
||||
cookieState = cookieState ?? await readAuthCookieState(context);
|
||||
@@ -514,7 +515,6 @@ async function logoutAccount(command = {}) {
|
||||
const logoutUrl = new URL("/logout", baseUrl).toString();
|
||||
const response = await page.evaluate(async (input) => {
|
||||
const res = await fetch(input.logoutUrl, { method: "POST", headers: { accept: "application/json" }, credentials: "include" });
|
||||
await res.text().catch(() => "");
|
||||
return { ok: res.ok, status: res.status, statusText: res.statusText || "" };
|
||||
}, { logoutUrl });
|
||||
await context.clearCookies().catch(() => {});
|
||||
@@ -1295,11 +1295,9 @@ async function createSessionFromUi() {
|
||||
const createStatus = createResponse.status();
|
||||
let createPayload = null;
|
||||
let createPayloadError = null;
|
||||
try {
|
||||
createPayload = await createResponse.json();
|
||||
} catch (error) {
|
||||
createPayloadError = errorSummary(error);
|
||||
}
|
||||
const createBody = await boundedResponseJson(createResponse);
|
||||
createPayload = createBody.value;
|
||||
createPayloadError = createBody.error;
|
||||
const createdSessionId = sessionIdFromAgentSessionPayload(createPayload);
|
||||
if (createStatus < 200 || createStatus >= 300 || !createdSessionId) {
|
||||
const error = new Error("newSession did not receive an authoritative session id from POST /v1/agent/sessions");
|
||||
@@ -1753,11 +1751,9 @@ async function sendPrompt(text, options = {}) {
|
||||
}
|
||||
let chatPayload = null;
|
||||
let chatPayloadError = null;
|
||||
try {
|
||||
chatPayload = await chatResponse.json();
|
||||
} catch (error) {
|
||||
chatPayloadError = errorSummary(error);
|
||||
}
|
||||
const chatBody = await boundedResponseJson(chatResponse);
|
||||
chatPayload = chatBody.value;
|
||||
chatPayloadError = chatBody.error;
|
||||
const payloadText = chatPayload ? JSON.stringify(chatPayload) : "";
|
||||
const traceId = payloadText.match(/\btrc_[A-Za-z0-9_-]+\b/u)?.[0] || null;
|
||||
const otelTraceId = typeof chatPayload?.otelTrace?.traceId === "string" && /^[0-9a-f]{32}$/u.test(chatPayload.otelTrace.traceId)
|
||||
|
||||
Reference in New Issue
Block a user