fix(web): import @tasks/ai via workspace alias instead of relative path

Two AI components were importing from ../../../../packages/ai/src using
relative paths that escape the workspace root. This worked locally because
all packages are siblings on disk, but failed in Docker where Dockerfile.web
only copies apps/web, packages/database, and packages/shared into the
build context — packages/ai never made it in.

Changes:
- Add @tasks/ai as a workspace dependency in apps/web/package.json
- Switch both imports (command-palette.tsx, ai-block.tsx) to "@tasks/ai"
- Add @tasks/ai to transpilePackages in next.config.ts and the docker variant
- Copy packages/ai into the Docker build context (Dockerfile.web)
- Refresh pnpm-lock.yaml for the new workspace edge

Verified locally: web builds compile cleanly past the previously failing
"Module not found" errors. (Local final step hits an unrelated ENOSPC on
the dev disk; Coolify's volume has plenty of headroom.)

Made-with: Cursor
This commit is contained in:
Randall Stillwell 2026-04-27 12:57:27 -05:00
parent 3ddbb4fb83
commit ba519a8b78
7 changed files with 9 additions and 4 deletions

View file

@ -29,7 +29,7 @@ import {
createOpenAIClient,
GENERAL_SYSTEM_PROMPT,
selectOpenAIModel,
} from "../../../../packages/ai/src";
} from "@tasks/ai";
const RECENT_KEY = "tasks-command-palette-recent-v1";

View file

@ -34,7 +34,7 @@ import {
selectOpenAIModel,
summarize,
translate,
} from "../../../../../packages/ai/src";
} from "@tasks/ai";
type AiStatus = "idle" | "loading" | "done" | "error";

View file

@ -3,7 +3,7 @@ import path from "path";
const nextConfig: NextConfig = {
output: "standalone",
transpilePackages: ["@tasks/database", "@tasks/shared"],
transpilePackages: ["@tasks/ai", "@tasks/database", "@tasks/shared"],
outputFileTracingRoot: path.join(__dirname, "../.."),
experimental: {
serverActions: {

View file

@ -29,6 +29,7 @@
"@radix-ui/react-tabs": "^1.1.3",
"@radix-ui/react-tooltip": "^1.1.8",
"@tanstack/react-query": "^5.62.0",
"@tasks/ai": "workspace:*",
"@tasks/database": "workspace:*",
"@tasks/shared": "workspace:*",
"@tiptap/extension-code-block": "^3.20.5",

View file

@ -20,6 +20,7 @@ COPY packages/ai/package.json ./packages/ai/
RUN pnpm install --frozen-lockfile
COPY apps/web ./apps/web
COPY packages/ai ./packages/ai
COPY packages/database ./packages/database
COPY packages/shared ./packages/shared
COPY docker/next.config.docker.ts ./apps/web/next.config.ts

View file

@ -7,7 +7,7 @@ import path from "path";
*/
const nextConfig: NextConfig = {
output: "standalone",
transpilePackages: ["@tasks/database", "@tasks/shared"],
transpilePackages: ["@tasks/ai", "@tasks/database", "@tasks/shared"],
outputFileTracingRoot: path.join(__dirname, "../.."),
experimental: {
serverActions: {

View file

@ -136,6 +136,9 @@ importers:
'@tanstack/react-query':
specifier: ^5.62.0
version: 5.95.2(react@19.2.4)
'@tasks/ai':
specifier: workspace:*
version: link:../../packages/ai
'@tasks/database':
specifier: workspace:*
version: link:../../packages/database