Removed redundant prisma:generate commands from typecheck, test, and
build steps. The dedicated prisma-generate step already generates the
client, and all subsequent steps depend on it and share node_modules.
Multiple concurrent generation attempts were causing ENOENT errors
during file rename operations:
Error: ENOENT: no such file or directory, rename
'.../libquery_engine-linux-musl-openssl-3.0.x.so.node.tmp33'
This fix ensures Prisma client is generated exactly once per pipeline
run, eliminating the race condition.
Refs #CI-woodpecker
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Changed CI pipeline to install dependencies only once in the install step.
All subsequent steps now reuse the installed node_modules instead of
reinstalling, which prevents ENOENT errors from concurrent pnpm lock file
operations.
- Only 'install' step runs 'pnpm install --frozen-lockfile'
- All other steps use 'corepack enable' and reuse existing dependencies
- Fixes ENOENT chown errors on lock.yaml temporary files
Refs #CI-woodpecker
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Fixes CI pipeline failures caused by missing Prisma Client generation and TypeScript type safety issues. Added Prisma generation step to CI pipeline, installed missing type dependencies, and resolved 40+ exactOptionalPropertyTypes violations across service layer.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>