mirror of
https://github.com/melgarafael/DeskcommCRM.git
synced 2026-10-02 01:28:34 +08:00
fix(ci): projeto exige Node 22 — a suíte de invariantes nunca rodou no 20
O job `invariants` falhou na primeira execução no runner do GitHub, com Node 20:
Error: Node.js detected but native WebSocket not found.
Suggested solution: Ensure you are running Node.js 22+
Oito arquivos de tests/invariants/ chamam createClient() do @supabase/supabase-js,
que constrói um RealtimeClient e exige o WebSocket global — nativo apenas a
partir do Node 22. Localmente passava porque a máquina roda v22.22.3; o .nvmrc
dizia 20 e o CI usava 20.
A inconsistência é anterior a esta mudança e estava latente justamente por não
haver CI para os invariantes: ninguém nunca rodou essa suíte no Node declarado.
Dockerfile.worker já tinha sido bumpado para node:22-alpine — o repo já sabia
disso pela metade.
Corrigir só o job mascararia o problema: quem seguisse o .nvmrc continuaria com
`pnpm test:db` quebrado na própria máquina. A correção é o contrato:
- .nvmrc 20 -> 22
- package.json engines.node ">=20" -> ">=22"
- ci.yml: ambos os jobs (verify e invariants) em node-version 22, para o repo
não passar a ser testado em dois runtimes diferentes
- docs/SETUP.md, CLAUDE.md e o template de bug atualizados, com o motivo escrito
no SETUP para quem for contribuir
NÃO alterado de propósito: o Dockerfile da aplicação segue em node:20-alpine.
Mudar o runtime de produção tem risco próprio e não pertence a esta correção —
fica registrado como pendência a decidir.
Verificado no Node v22.22.3: typecheck 0, lint 0 erros.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KMEbgy5YWXZimXQAN7oRMm
This commit is contained in:
committed by
Rafael Melgaço
co-authored by
Claude Opus 5
parent
ce93ab00d4
commit
696f083529
@@ -30,7 +30,7 @@ body:
|
||||
label: Ambiente
|
||||
description: Versão do Node, pnpm, SO, e onde roda (local / Vercel / VPS HostGator).
|
||||
placeholder: |
|
||||
Node 20.x · pnpm 9.x · macOS 15 · self-host via hostgator-setup-kit
|
||||
Node 22.x · pnpm 9.x · macOS 15 · self-host via hostgator-setup-kit
|
||||
Output de /api/v1/health: ...
|
||||
validations:
|
||||
required: true
|
||||
|
||||
@@ -16,7 +16,7 @@ jobs:
|
||||
|
||||
- uses: actions/setup-node@v7
|
||||
with:
|
||||
node-version: 20
|
||||
node-version: 22
|
||||
cache: pnpm
|
||||
|
||||
- run: pnpm install --frozen-lockfile
|
||||
@@ -47,7 +47,7 @@ jobs:
|
||||
|
||||
- uses: actions/setup-node@v7
|
||||
with:
|
||||
node-version: 20
|
||||
node-version: 22
|
||||
cache: pnpm
|
||||
|
||||
- run: pnpm install --frozen-lockfile
|
||||
|
||||
@@ -149,7 +149,7 @@ DeskcommCRM é um sistema operacional de vendas open source com agentes de IA na
|
||||
## Como rodar local
|
||||
|
||||
```bash
|
||||
nvm use # node 20
|
||||
nvm use # node 22
|
||||
npm install
|
||||
cp .env.example .env.local # preencher
|
||||
docker compose up -d # WAHA local
|
||||
|
||||
+1
-1
@@ -30,7 +30,7 @@
|
||||
## Antes de começar
|
||||
|
||||
**O que você precisa ter instalado:**
|
||||
- **Node.js 20** — recomendamos via [nvm](https://github.com/nvm-sh/nvm). No repo, rode `nvm use` e ele puxa a versão certa.
|
||||
- **Node.js 22** — recomendamos via [nvm](https://github.com/nvm-sh/nvm). No repo, rode `nvm use` e ele puxa a versão certa. A suíte `pnpm test:db` exige Node 22+: os testes instanciam o cliente do Supabase, que precisa do `WebSocket` global (nativo só a partir do 22).
|
||||
- **Docker Desktop** — pra rodar o WAHA local. [Download](https://www.docker.com/products/docker-desktop/).
|
||||
- **pnpm** — `npm install -g pnpm` (gerenciador de pacotes que usamos).
|
||||
- **Git** — você já tem se clonou o repo.
|
||||
|
||||
+1
-1
@@ -4,7 +4,7 @@
|
||||
"private": true,
|
||||
"description": "DeskcommCRM — sistema operacional de vendas open source com agentes de IA nativos e WhatsApp (WAHA). Self-hosted, multi-tenant, LGPD by-design.",
|
||||
"engines": {
|
||||
"node": ">=20"
|
||||
"node": ">=22"
|
||||
},
|
||||
"scripts": {
|
||||
"dev": "next dev",
|
||||
|
||||
Reference in New Issue
Block a user