From 55e4b76bb2b501514fab55fa89f67131c4b4ffd4 Mon Sep 17 00:00:00 2001 From: Vincent Koc Date: Sun, 17 May 2026 02:47:58 +0800 Subject: [PATCH] fix(browser): preserve raw chrome launch diagnostics --- extensions/browser/src/browser/chrome.internal.test.ts | 10 ++++++++++ extensions/browser/src/browser/chrome.ts | 10 +++++----- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/extensions/browser/src/browser/chrome.internal.test.ts b/extensions/browser/src/browser/chrome.internal.test.ts index 81a87009dbe..839a0ca79ca 100644 --- a/extensions/browser/src/browser/chrome.internal.test.ts +++ b/extensions/browser/src/browser/chrome.internal.test.ts @@ -517,6 +517,16 @@ describe("chrome.ts internal", () => { }); it("clears stale singleton locks and retries once after profile-in-use launch failure", async () => { + const configPath = path.join(tmpDir, "openclaw.json"); + await fsp.writeFile( + configPath, + JSON.stringify({ + logging: { + redactPatterns: ["profile appears to be in use by another Chromium process"], + }, + }), + ); + vi.stubEnv("OPENCLAW_CONFIG_PATH", configPath); let cdpReachable = false; vi.stubGlobal( "fetch", diff --git a/extensions/browser/src/browser/chrome.ts b/extensions/browser/src/browser/chrome.ts index d6c1cd3af6e..75eccd912ec 100644 --- a/extensions/browser/src/browser/chrome.ts +++ b/extensions/browser/src/browser/chrome.ts @@ -542,9 +542,9 @@ export async function launchOpenClawChrome( const diagnosticText = await diagnoseChromeCdp(profile.cdpUrl) .then(formatChromeCdpDiagnostic) .catch((err) => `CDP diagnostic failed: ${safeChromeCdpErrorMessage(err)}.`); - const stderrOutput = redactSensitiveText( - normalizeOptionalString(Buffer.concat(stderrChunks).toString("utf8")) ?? "", - ); + const stderrOutput = + normalizeOptionalString(Buffer.concat(stderrChunks).toString("utf8")) ?? ""; + const redactedStderrOutput = redactSensitiveText(stderrOutput); if ( allowSingletonRecovery && CHROME_SINGLETON_IN_USE_PATTERN.test(stderrOutput) && @@ -556,8 +556,8 @@ export async function launchOpenClawChrome( await terminateChromeForRetry(proc, userDataDir); return await launchOnceAndWait(false); } - const stderrHint = stderrOutput - ? `\nChrome stderr:\n${stderrOutput.slice(0, CHROME_STDERR_HINT_MAX_CHARS)}` + const stderrHint = redactedStderrOutput + ? `\nChrome stderr:\n${redactedStderrOutput.slice(0, CHROME_STDERR_HINT_MAX_CHARS)}` : ""; const launchHints = chromeLaunchHints({ stderrOutput, resolved, profile, launchOptions }); try {