From f924ed4e9ceb10e3c9b93f656868a3ac44d83f19 Mon Sep 17 00:00:00 2001 From: LoopX Agent <337587101+loopx-agent@users.noreply.github.com> Date: Wed, 4 Nov 2026 19:52:41 +0800 Subject: [PATCH] fix(smoke): release original analysis reads after loading Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com> --- .../personal-workspace-browser/research-route-reading.mjs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/examples/personal-workspace-browser/research-route-reading.mjs b/examples/personal-workspace-browser/research-route-reading.mjs index 393b02d7cf..69af7facb6 100644 --- a/examples/personal-workspace-browser/research-route-reading.mjs +++ b/examples/personal-workspace-browser/research-route-reading.mjs @@ -75,9 +75,10 @@ export const researchRouteReadingScenario = { if (collectCoverage) await page.coverage.startJSCoverage({resetOnNavigation: false}); const url = new URL("/chat/?goalId=synthetic-route-reading&view=research&statusUrl=%2Fstatus.json", owner.base).href; let state = "deep", analysisWrites = 0, releaseLoading; + let loadingRead = Promise.resolve(); await page.route("**/api/chat/research-analysis?*", async route => { if (route.request().method() !== "GET") {analysisWrites++; return route.abort();} - if (state === "loading") await new Promise(resolve => {releaseLoading = resolve;}); + if (state === "loading") await loadingRead; const language = new URL(route.request().url()).searchParams.get("output_language"); const snapshot = analysisReadback(); snapshot.pack.config = {...snapshot.pack.config, output_language: language}; @@ -98,6 +99,8 @@ export const researchRouteReadingScenario = { await page.goto(url, {waitUntil: "domcontentloaded"}); await page.evaluate(locale => localStorage.setItem("loopx-pw-locale", locale), language); for (state of ["loading", "deep", "view", "reuse", "continue", "running", "unavailable"]) { + // One release covers this read and its subsequent original fallback. + if (state === "loading") loadingRead = new Promise(resolve => {releaseLoading = resolve;}); await page.reload({waitUntil: "domcontentloaded"}); await caption.first().waitFor(); assert.equal(await page.locator("html").getAttribute("lang"), language);