Pular para o conteúdo

Contribuir

O LiteZap é open source (Apache-2.0) e aceita contribuições.

  • Go na versão do go.mod.
  • Para o site: Node.js e pnpm.
Janela do terminal
git clone https://github.com/douglasdf99/litezap.git && cd litezap
go build -o litezap ./cmd/litezap
go test -race ./...
Pasta O quê
cmd/litezap Binário (serve, worker, mcp, version)
internal/api REST (rotas chi, autenticação)
internal/service Casos de uso compartilhados por REST e MCP
internal/mcp Servidor MCP (/mcp) e ponte stdio (litezap mcp)
internal/dashboard, cmd/litezap-app Painel web em /app/ e app de bandeja
internal/manager, internal/spawner Ciclo de vida das instâncias e processos worker
internal/worker Worker com whatsmeow, falando gRPC com o supervisor
internal/queue, internal/lookup Fila de envio, ritmo e verificação de números
internal/events, internal/webhook Barramento de eventos, webhooks e SSE
internal/store SQLite e migrações
proto/ Contrato gRPC supervisor ↔ worker (go tool buf generate depois de mudar)
site/ Este site (Astro + Starlight)
  • Unitários por pacote, com relógio falso para ritmo, backoff e janelas.
  • Worker falso (internal/workertest): implementa o contrato gRPC e simula conectar, cair, travar, banimento e mensagens recebidas, para testar o supervisor inteiro sem WhatsApp real.
  • Contrato da API via httptest.
  • E2E com número de teste real, atrás de -tags=e2e, fora do CI.

Toda mudança de API atualiza no mesmo PR o site/public/openapi.yaml (a referência é gerada dele), o catálogo de eventos e o changelog. Para ver o site:

Janela do terminal
cd site && pnpm install && pnpm dev
  • go test -race ./... passando e pnpm build no site/ sem erros.
  • Mensagens de commit no formato convencional (feat(api): ..., fix(queue): ..., docs: ...).
  • Recursos que aumentam o risco de banimento (envio em massa, rotação de IP) não serão aceitos; veja o uso aceitável.

Vulnerabilidades: não abra issue pública; veja a política de segurança.