Archilyzer · Source

archilyzer

Archilyzer
git clone https://archilyzer.pages.dev/source/archilyzer.git
Log | Files | Refs | README | LICENSE

commit 921043fa26c46e2d2bc816c3d1081277ab695c5c
parent 9b0f8b17988c60dc0fe05d822d856789f8d3922b
Author: I Mean I'm Just Saying <imeanimjustsaying@kiwifarms.st>
Date:   Thu,  1 Oct 2026 21:53:43 -0400

editor(e2e): the report's own refresh-report job is not the bulk delete's; dashboard-answers warms the ops route first

generateReport now queues a refresh-report job (D0 review L3), which /jobs may
draw before its default filter hides it; bulk-actions' "queues no job" check
leaves it out. dashboard-answers compiles the ops refresh-report route (a 400 on
an empty body) before it measures: under load its first compile held / for 15 s.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

Diffstat:
Meditor/e2e/bulk-actions.spec.ts | 8+++++++-
Meditor/e2e/dashboard-answers.spec.ts | 10++++++++++
2 files changed, 17 insertions(+), 1 deletion(-)

diff --git a/editor/e2e/bulk-actions.spec.ts b/editor/e2e/bulk-actions.spec.ts @@ -165,9 +165,15 @@ test("Select failed + Delete directories removes the dirs and queues no job", as await expect(page.getByLabel("select vidB")).toBeVisible(); // Crucially: NO managed job was queued (no transcode/download triggered). + // The report generateReport asked for is a refresh-report job of its own + // (release 17: every report walk runs on the refresh-report queue), and + // /jobs may draw it before its default filter hides it — not this action's. await page.goto("/jobs"); await expect( - page.getByRole("row").filter({ hasText: "test-transcribe" }), + page + .getByRole("row") + .filter({ hasText: "test-transcribe" }) + .filter({ hasNotText: "refresh-report" }), ).toHaveCount(0); }); diff --git a/editor/e2e/dashboard-answers.spec.ts b/editor/e2e/dashboard-answers.spec.ts @@ -134,6 +134,16 @@ test("/ and /jobs answer while two large reports regenerate, one after the other for (const path of ["/", "/jobs"]) { expect((await timedGet(request, path)).status).toBe(200); } + // And the ops route that starts the regeneration: its first request compiles + // it, which under load held `/` for 15 s in one full-suite run — a dev + // server's compile, not a walk. A body naming neither form is refused (400) + // after the route has loaded, and starts nothing. + const warm = await request.post(`${baseUrl}/api/ops/refresh-report`, { + headers: OPS_AUTH, + data: {}, + timeout: 120_000, + }); + expect(warm.status()).toBe(400); const idle: Sample[] = []; for (let i = 0; i < 3; i++) { for (const path of ["/", "/jobs"]) idle.push(await timedGet(request, path));