From 7b9dd150236720ccd446967395addcb5bd621946 Mon Sep 17 00:00:00 2001 From: Tofik Hasanov Date: Thu, 28 May 2026 15:42:38 -0400 Subject: [PATCH] fix(monorepo): use glob+negation for workspaces (unbreak Docker build) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PR #2950 enumerated workspaces explicitly to exclude apps/mcp-server, but that broke the API's Docker build: error: Workspace not found "apps/app" error: Workspace not found "apps/framework-editor" error: Workspace not found "apps/portal" The Dockerfile only COPYs apps/api into the build context, so when bun reads package.json and tries to find the other named apps, it fails. The original "apps/*" glob worked because globs only match what exists; explicit paths require the path to exist. Fix: combine glob with negation — ["apps/*", "!apps/mcp-server", "packages/*"] Verified locally: - bun install at root succeeds - node_modules/@trycompai/mcp-server is NOT created - bun.lock has zero references to apps/mcp-server - Original Docker-friendly glob behavior preserved (matches only existing paths) This unbreaks the API Docker build that PR #2950 broke, while still keeping apps/mcp-server outside the bun workspace so Speakeasy's CI npm install doesn't choke on workspace:* protocol. Co-Authored-By: Claude Opus 4.7 (1M context) --- package.json | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index a3866ded4..7ca0e64a7 100644 --- a/package.json +++ b/package.json @@ -85,10 +85,8 @@ "typecheck:ci": "turbo typecheck --filter={apps/**} --filter={packages/**} --filter=!@trycompai/integrations --filter=!@trycompai/ui" }, "workspaces": [ - "apps/api", - "apps/app", - "apps/framework-editor", - "apps/portal", + "apps/*", + "!apps/mcp-server", "packages/*" ], "dependencies": {