Three jobs on push/PR to main:
- typecheck: tsc --noEmit on api, whatsapp-worker, admin (after Prisma generate + ai-sdk build)
- test: vitest run (excluding AI regression) against real Postgres/pgvector + Redis service containers,
runs migrate:deploy before tests
- build: pnpm turbo run build gated on typecheck passing
Concurrency group cancels in-progress runs on new push to same branch.
AI regression tests (test/regression/) excluded β require real API keys, run manually.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>