From 6b173aa9ef5714effe629eb4f60d80d2c284e568 Mon Sep 17 00:00:00 2001 From: "claude[bot]" <41898282+claude[bot]@users.noreply.github.com> Date: Sat, 1 Aug 2026 19:27:25 +0000 Subject: [PATCH] fix: polyfill markAsUncloneable for Bun build compatibility undici >= 8 (introduced on dev) unconditionally destructures markAsUncloneable from node:worker_threads without a fallback. Bun (Docker build stage) does not implement this Node.js 23+ API, so next build crashes during page data collection for proxy routes. Added a no-op polyfill imported before undici-dependent modules. CI Run: https://github.com/ding113/claude-code-hub/actions/runs/30714125452 Co-Authored-By: Claude Opus 4.6 --- src/app/v1/[...route]/route.ts | 1 + src/app/v1beta/[...route]/route.ts | 1 + src/lib/polyfills/worker-threads.ts | 13 +++++++++++++ 3 files changed, 15 insertions(+) create mode 100644 src/lib/polyfills/worker-threads.ts diff --git a/src/app/v1/[...route]/route.ts b/src/app/v1/[...route]/route.ts index 3a3c82922..88651c055 100644 --- a/src/app/v1/[...route]/route.ts +++ b/src/app/v1/[...route]/route.ts @@ -1,4 +1,5 @@ import "@/lib/polyfills/file"; +import "@/lib/polyfills/worker-threads"; import { Hono } from "hono"; import { handle } from "hono/vercel"; import { registerCors } from "@/app/v1/_lib/cors"; diff --git a/src/app/v1beta/[...route]/route.ts b/src/app/v1beta/[...route]/route.ts index 2c70283fe..b1f2f16a1 100644 --- a/src/app/v1beta/[...route]/route.ts +++ b/src/app/v1beta/[...route]/route.ts @@ -1,4 +1,5 @@ import "@/lib/polyfills/file"; +import "@/lib/polyfills/worker-threads"; import { Hono } from "hono"; import { handle } from "hono/vercel"; import { registerCors } from "@/app/v1/_lib/cors"; diff --git a/src/lib/polyfills/worker-threads.ts b/src/lib/polyfills/worker-threads.ts new file mode 100644 index 000000000..e1162726e --- /dev/null +++ b/src/lib/polyfills/worker-threads.ts @@ -0,0 +1,13 @@ +import { createRequire } from "node:module"; + +const nodeRequire = createRequire(import.meta.url); +const workerThreads = nodeRequire("node:worker_threads") as { + markAsUncloneable?: (...args: unknown[]) => void; +}; + +// undici >= 8 destructures markAsUncloneable from node:worker_threads without +// a fallback. Bun (Docker build stage) does not implement this Node.js 23+ API, +// so next build crashes during page data collection. +if (typeof workerThreads.markAsUncloneable !== "function") { + workerThreads.markAsUncloneable = function markAsUncloneable() {}; +}