diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 84bc2e397..31b2878c0 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -380,6 +380,12 @@ jobs: - name: Test coding-agent native/unit bucket env: OMP_TEST_CONCURRENCY: "4" + # The mupdf/PDF-extraction chunk measures ~7 min on burstable + # runners under a full 8-wide fan-out; the default 600 s chunk + # watchdog SIGKILLed it (release run 30519992654). The watchdog + # exists to catch wedged children, not slow-but-progressing + # chunks — give this bucket a wider budget. + OMP_TEST_CHUNK_TIMEOUT: "1200" run: bun run ci:test:coding-agent:native test_smoke: diff --git a/packages/utils/test/logger-contract.test.ts b/packages/utils/test/logger-contract.test.ts index f6f0a7b93..f2afd144c 100644 --- a/packages/utils/test/logger-contract.test.ts +++ b/packages/utils/test/logger-contract.test.ts @@ -252,26 +252,22 @@ describe("central logger transport lifecycle", () => { // on an unloaded runner — bun's 5 s default test timeout SIGTERMed the // probe (exit 143) whenever CI runners shared cores. The contract is // order + drain, not latency; give it an explicit budget. - test( - "preserves burst order and drains on close and natural child exit", - async () => { - for (const scenario of ["burst-close", "burst-natural"] as const) { - const result = await runScenario(scenario); - expect(result.stdout).toBe(""); - expect(result.stderr).toBe(""); - const text = (await readSingleLog(result.primaryDir)).text; - expect(text.endsWith(os.EOL)).toBe(true); - const lines = text.split(os.EOL); - expect(lines.pop()).toBe(""); - expect(lines).toHaveLength(1_000); - for (const [index, line] of lines.entries()) { - const entry = JSON.parse(line) as { message: string; index: number }; - expect(entry).toMatchObject({ message: scenario, index }); - } + test("preserves burst order and drains on close and natural child exit", async () => { + for (const scenario of ["burst-close", "burst-natural"] as const) { + const result = await runScenario(scenario); + expect(result.stdout).toBe(""); + expect(result.stderr).toBe(""); + const text = (await readSingleLog(result.primaryDir)).text; + expect(text.endsWith(os.EOL)).toBe(true); + const lines = text.split(os.EOL); + expect(lines.pop()).toBe(""); + expect(lines).toHaveLength(1_000); + for (const [index, line] of lines.entries()) { + const entry = JSON.parse(line) as { message: string; index: number }; + expect(entry).toMatchObject({ message: scenario, index }); } - }, - 30_000, - ); + } + }, 30_000); test("runs local console output before sinks and isolates throwing or disposed sinks", async () => { const result = await runScenario("sink-order");