From 430d7b652df20b18f1cbaf212523d5eec19a47b3 Mon Sep 17 00:00:00 2001 From: Benjamin Liu Date: Thu, 21 May 2026 19:11:14 +0900 Subject: [PATCH 1/2] test(download): retry media-download Windows tests to absorb runner cold-start variance src/download/media-download.test.ts > 'keeps custom filenames inside the output directory' timed out at the default 5000ms on CI run 26217100578 (Windows shard 2/2). The other two cases in the same describe block completed in ~400ms, so the failure is cold-start cost of the first http.createServer + downloadMedia roundtrip on a loaded GitHub Actions Windows runner, not a logic regression. Adopt the same { retry: process.platform === 'win32' ? 2 : 0 } describe option that src/download/index.test.ts already uses for the same class of Windows-only network/IO flake. --- src/download/media-download.test.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/download/media-download.test.ts b/src/download/media-download.test.ts index 8029071be..891c52252 100644 --- a/src/download/media-download.test.ts +++ b/src/download/media-download.test.ts @@ -31,7 +31,11 @@ async function startServer(handler: http.RequestListener): Promise { return `http://127.0.0.1:${address.port}`; } -describe('media downloads', () => { +// Mirrors src/download/index.test.ts: Windows runners occasionally exceed the +// default 5s timeout on the first network test (cold-start cost of the +// http.createServer + downloadMedia pipeline on a loaded GitHub Actions VM, +// observed on CI run 26217100578). +describe('media downloads', { retry: process.platform === 'win32' ? 2 : 0 }, () => { it('keeps custom filenames inside the output directory', async () => { const baseUrl = await startServer((_req, res) => { res.statusCode = 200; From 8abcaed51cc322e94753ff6e5acf9363454ab394 Mon Sep 17 00:00:00 2001 From: Benjamin Liu Date: Thu, 21 May 2026 19:11:55 +0900 Subject: [PATCH 2/2] test(download): trim media-download retry comment to match sibling tone src/download/index.test.ts uses a 2-line comment for the same pattern. The CI run id + redundant cross-reference belong in commit history, not inline. --- src/download/media-download.test.ts | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/download/media-download.test.ts b/src/download/media-download.test.ts index 891c52252..eae48d4a5 100644 --- a/src/download/media-download.test.ts +++ b/src/download/media-download.test.ts @@ -31,10 +31,8 @@ async function startServer(handler: http.RequestListener): Promise { return `http://127.0.0.1:${address.port}`; } -// Mirrors src/download/index.test.ts: Windows runners occasionally exceed the -// default 5s timeout on the first network test (cold-start cost of the -// http.createServer + downloadMedia pipeline on a loaded GitHub Actions VM, -// observed on CI run 26217100578). +// Windows runners occasionally exceed the default 5s timeout on the first +// http.createServer + downloadMedia roundtrip (cold-start cost on a loaded VM). describe('media downloads', { retry: process.platform === 'win32' ? 2 : 0 }, () => { it('keeps custom filenames inside the output directory', async () => { const baseUrl = await startServer((_req, res) => {