From 0a67197e14ecfa7b852bc3f0026edf2ae22fce8d Mon Sep 17 00:00:00 2001 From: Dotta Date: Wed, 30 Sep 2026 22:19:42 -0500 Subject: [PATCH] test(runner): allow bounded native shim fixture setup The Copilot shim test copies and hashes the complete host Node closure before launching the bootstrap and owned shim. Two CI runs stopped at Vitest's default 5s limit (jobs 110198660276 and 110200639147), while identical code passed in 1081ms in job 110197353844. Use the adjacent real-Node closure test's 30s envelope; preserve all assertions, product deadlines, and retry behavior. Co-Authored-By: Paperclip --- .../src/drivers/acpx/native-distribution-integrity.test.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/paperclip-runner/src/drivers/acpx/native-distribution-integrity.test.ts b/packages/paperclip-runner/src/drivers/acpx/native-distribution-integrity.test.ts index d29cc92df1..a78c3e7fe4 100644 --- a/packages/paperclip-runner/src/drivers/acpx/native-distribution-integrity.test.ts +++ b/packages/paperclip-runner/src/drivers/acpx/native-distribution-integrity.test.ts @@ -108,6 +108,9 @@ describe("native ACPX execution closure", () => { expect(first.text).toMatch(/^native:fixed:.*paperclip-acpx-native-.*\/state$/); expect(first.text).not.toBe(second.text); }); + // Copy/hash the real Node closure and start its bootstrap + owned shim. These + // operations share the adjacent native-closure test's bounded allowance; + // Vitest's 5s default is not a provider startup or permission deadline. it("loads the owned Copilot distribution through a guarded private shim and ignores ambient overrides", async () => { const declaration = await fixture({ node: true }); const entries = await readNativeAcpxDistributionEntries(declaration); @@ -130,7 +133,7 @@ describe("native ACPX execution closure", () => { await expect(readNativeAcpxDistributionEntries({ ...owned, copilotDistributionDirectory: "../ambient" })).rejects.toThrow("launch declaration"); await expect(readNativeAcpxDistributionEntries({ ...owned, copilotDistributionDirectory: "missing" })).rejects.toThrow("owned entrypoint"); await expect(readNativeAcpxDistributionEntries({ ...owned, entrypoint: "entry.cjs" })).rejects.toThrow("launch declaration"); - }); + }, 30_000); it("loads a pinned Node entrypoint while rejecting unqualified external modules", async () => { const declaration = await fixture({ node: true }); const result = await output((await (await verifyNativeAcpxInstallation(declaration)).openCommand()).spawn());