- Dockerfile: uses corepack + pnpm with --frozen-lockfile - Lock file: pnpm-lock.yaml replaces package-lock.json - Build verified: all routes compile OK