From 70bc1844fd58c74726a7a1c92e36d90017f993db Mon Sep 17 00:00:00 2001 From: Yuvraj Sarathe Date: Fri, 3 Jul 2026 16:27:59 +0530 Subject: [PATCH 1/2] fix(docker): run from repo root so pnpm store symlinks resolve at runtime --- apps/api/Dockerfile | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/apps/api/Dockerfile b/apps/api/Dockerfile index 4337366..d3f8511 100644 --- a/apps/api/Dockerfile +++ b/apps/api/Dockerfile @@ -36,19 +36,19 @@ COPY apps/api/src ./apps/api/src RUN pnpm --filter=api build # ── runner stage: minimal production image ── +# WORKDIR at /app (repo root) so pnpm's store symlinks resolve correctly FROM base AS runner -WORKDIR /app/apps/api +WORKDIR /app -# Copy compiled output -COPY --from=deps /app/apps/api/dist ./dist -# Copy Prisma schema + migrations for runtime migrations -COPY --from=deps /app/apps/api/prisma ./prisma +# Copy compiled API output +COPY --from=deps /app/apps/api/dist ./apps/api/dist +# Copy Prisma schema + migrations for runtime +COPY --from=deps /app/apps/api/prisma ./apps/api/prisma # Copy package.json for process metadata -COPY --from=deps /app/apps/api/package.json ./ - -# Copy node_modules from the monorepo (pnpm maintains symlinks correctly) -COPY --from=deps /app/node_modules ../node_modules -COPY --from=deps /app/apps/api/node_modules ./node_modules +COPY --from=deps /app/apps/api/package.json ./apps/api/package.json +# Copy the full pnpm virtual store + root node_modules (needed for symlink resolution) +COPY --from=deps /app/node_modules ./node_modules +COPY --from=deps /app/apps/api/node_modules ./apps/api/node_modules EXPOSE 3001 -CMD ["node", "dist/index.js"] +CMD ["node", "apps/api/dist/index.js"] From 4736909dbf99e97cfcd7498e659ac5f7d40cc8a5 Mon Sep 17 00:00:00 2001 From: Yuvraj Sarathe Date: Fri, 3 Jul 2026 17:00:51 +0530 Subject: [PATCH 2/2] fix: eslint unused vars and any types blocking Vercel build --- apps/web/src/app/app/dashboard/page.tsx | 13 ++++++------- turbo.json | 5 ++++- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/apps/web/src/app/app/dashboard/page.tsx b/apps/web/src/app/app/dashboard/page.tsx index 19a5b86..d39de36 100644 --- a/apps/web/src/app/app/dashboard/page.tsx +++ b/apps/web/src/app/app/dashboard/page.tsx @@ -4,7 +4,6 @@ import Link from "next/link"; import { useRouter } from "next/navigation"; import { useEffect } from "react"; import { ArrowRight, Clock, Target, Trophy } from "lucide-react"; -import { TRPCClientError } from "@trpc/client"; import { PageHeader } from "@/components/app/page-header"; import { Button } from "@/components/ui/button"; import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"; @@ -22,15 +21,15 @@ export default function DashboardPage() { const leaderboardQuery = trpc.warRoom.getLeaderboard.useQuery(); const statsQuery = trpc.profile.getStats.useQuery(); - const { data: profile, isLoading: profileLoading } = profileQuery; - const { data: tracks, isLoading: tracksLoading } = tracksQuery; - const { data: leaderboard, isLoading: leaderboardLoading } = leaderboardQuery; - const { data: stats, isLoading: statsLoading } = statsQuery; + const { data: profile } = profileQuery; + const { data: tracks } = tracksQuery; + const { data: leaderboard } = leaderboardQuery; + const { data: stats } = statsQuery; const queries = [profileQuery, tracksQuery, leaderboardQuery, statsQuery]; const isLoading = queries.some((q) => q.isLoading); const hasUnauthorized = queries.some( - (q) => q.error && (q.error as TRPCClientError).data?.code === "UNAUTHORIZED", + (q) => q.error && (q.error as { data?: { code?: string } }).data?.code === "UNAUTHORIZED", ); useEffect(() => { @@ -45,7 +44,7 @@ export default function DashboardPage() { if (isError) { const nonAuthErrors = queries.some( - (q) => q.error && (q.error as TRPCClientError).data?.code !== "UNAUTHORIZED", + (q) => q.error && (q.error as { data?: { code?: string } }).data?.code !== "UNAUTHORIZED", ); if (nonAuthErrors) { return ( diff --git a/turbo.json b/turbo.json index 4f286ae..e621be6 100644 --- a/turbo.json +++ b/turbo.json @@ -3,7 +3,10 @@ "tasks": { "build": { "dependsOn": ["^build"], - "outputs": [".next/**", "dist/**"] + "outputs": [".next/**", "dist/**"], + "env": [ + "NEXT_PUBLIC_API_URL" + ] }, "lint": { "dependsOn": ["^lint"]