commit b636936b10f9eed83fbd9f2d00c8692ff6a63044
parent dae7febb3f553f307ead7a3f42e656d99f236ee2
Author: I Mean I'm Just Saying <imeanimjustsaying@kiwifarms.st>
Date: Fri, 25 Sep 2026 19:24:13 -0400
editor: the queued-sync e2e releases its holder after 10 s, not 4 (review LOW-3)
The sync has to be observed queued before the detached release fires; a
cold-compiled /api/ops POST could outlast 4 s and fail the spec red.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Diffstat:
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/editor/e2e/ops-api.spec.ts b/editor/e2e/ops-api.spec.ts
@@ -440,7 +440,7 @@ test("metadata-scan starts a job, and the job says it is a metadata-scan", async
// throw landed after the work was done: the job read `failed` and `pnpm ops …
// --wait` exited 1 (the teamrcn sync, 2026-09-25).
//
-// The holder is /api/test/stuck-job on platform:youtube, released after 4 s
+// The holder is /api/test/stuck-job on platform:youtube, released after 10 s
// from OUTSIDE any request (`releaseAfterMs`; `detached` says the harness
// managed it). The sync is submitted behind it, so the release is what starts
// it — with no store, as live.
@@ -461,7 +461,7 @@ test("a sync queued behind another platform job ends done, not failed", async ({
readJson<Meta>(`test-transcripts/.jobs/${id}.meta.json`).catch(() => null);
const hold = await request.get(
- `${baseUrl}/api/test/stuck-job?queue=${encodeURIComponent("platform:youtube")}&releaseAfterMs=4000`,
+ `${baseUrl}/api/test/stuck-job?queue=${encodeURIComponent("platform:youtube")}&releaseAfterMs=10000`,
);
expect(hold.ok()).toBe(true);
const holder = (await hold.json()) as { id: string; detached: boolean };
@@ -470,7 +470,9 @@ test("a sync queued behind another platform job ends done, not failed", async ({
const sync = await ops(request, "sync", { slug: "slow-b" });
expect(sync.body.ok).toBe(true);
const jobId = sync.body.jobId!;
- // Behind the holder on the same platform queue: the release starts it.
+ // Behind the holder on the same platform queue: the release starts it. The
+ // 10 s window leaves room for a cold-compiled /api/ops POST and this poll to
+ // land before the release fires.
await expect.poll(async () => (await meta(jobId))?.status ?? null).toBe("queued");
expect((await meta(jobId))?.queueKey).toBe("platform:youtube");