From c30b5650123b73efa04b58a457a8a74ba51655d6 Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 16 Apr 2026 12:49:35 +0000 Subject: [PATCH] fix(e2e): force-exit seed process to prevent 30-minute CI timeout MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The seed-e2e.ts script hangs after Instance.disposeAll() because BootstrapRuntime and per-service ManagedRuntime instances (created via the shared memoMap during InstanceBootstrap) hold scoped Effect resources that keep the event loop alive. This causes e2e-local.ts to wait forever on `await seed.exited`, preventing Playwright tests from ever starting — resulting in the 30-minute CI timeout on both Linux and Windows. Closes #22051 https://claude.ai/code/session_01AhcEdoukx4YJqHfMYZo5NH --- packages/opencode/script/seed-e2e.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/packages/opencode/script/seed-e2e.ts b/packages/opencode/script/seed-e2e.ts index f5bd7194f2..a1a3cc2cc7 100644 --- a/packages/opencode/script/seed-e2e.ts +++ b/packages/opencode/script/seed-e2e.ts @@ -58,3 +58,8 @@ const seed = async () => { } await seed() +// Force-exit: BootstrapRuntime and per-service ManagedRuntime instances +// (created via the shared memoMap during InstanceBootstrap) hold scoped +// resources that keep the event loop alive even after Instance.disposeAll(). +// The seed script only writes data, so an explicit exit is safe. +process.exit(0)