mirror of
https://github.com/melgarafael/DeskcommCRM.git
synced 2026-10-02 01:28:34 +08:00
docs(growth-fase-2): CHANGELOG com a v1.0.0, o primeiro release do projeto
O repositório tinha ZERO releases e nenhuma tag semver — só 4 tags internas de trabalho (fusion-fase1, pre-consolidation e afins). Para um produto self-hosted isso custa em duas frentes: quem hospeda não tem como saber o que muda antes de rodar `update.sh`, e o projeto perde o único evento de marketing que se repete sozinho (release = post = tráfego). v1.0.0 e não 0.x porque o produto está em produção, tem kit de instalação, caminho de atualização testado no CI e governança — e porque, para quem avalia adotar um self-host, 0.x lê como "ainda não confie". A seção "⚠️ Requer atenção" existe para as mudanças que exigem ação de quem já tem uma instalação rodando. Nesta versão, o Node 22 para desenvolvimento (não afeta quem só hospeda: a VPS roda a imagem pronta). 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
d541b9c57b
commit
3ae0705605
@@ -0,0 +1,81 @@
|
||||
# Changelog
|
||||
|
||||
Todas as mudanças relevantes deste projeto são documentadas aqui.
|
||||
|
||||
O formato segue [Keep a Changelog](https://keepachangelog.com/pt-BR/1.1.0/) e o versionamento segue [SemVer](https://semver.org/lang/pt-BR/).
|
||||
|
||||
Se você roda o DeskcommCRM numa VPS, **leia a seção da versão para a qual está atualizando antes de rodar `bash update.sh`**. Mudanças que exigem ação manual aparecem sob **⚠️ Requer atenção**.
|
||||
|
||||
## [Não lançado]
|
||||
|
||||
## [1.0.0] — 2026-07-27
|
||||
|
||||
Primeira versão marcada do DeskcommCRM. O projeto vinha sendo desenvolvido publicamente desde abril de 2026 sem tags; esta release estabelece o ponto a partir do qual toda mudança passa a ser versionada e descrita — porque quem hospeda o próprio sistema precisa saber o que muda antes de atualizar.
|
||||
|
||||
### Plataforma
|
||||
|
||||
- Multi-tenancy com RLS em toda tabela tenant-aware, resolvida por `fn_user_org_ids()`.
|
||||
- RBAC de 4 papéis (`viewer` < `agent` < `manager` < `admin`), aplicado no servidor.
|
||||
- Autenticação via Supabase Auth com MFA TOTP obrigatório para administradores.
|
||||
- Log de auditoria append-only com retenção de 5 anos.
|
||||
- Onboarding de organização e ciclo completo de convite de membros.
|
||||
|
||||
### Atendimento WhatsApp
|
||||
|
||||
- Inbox de 3 painéis em tempo real, com múltiplos números via WAHA.
|
||||
- Mídia servida por Storage com URLs assinadas; transcrição de áudio.
|
||||
- Proteção anti-banimento: ritmo com variação, teto por número, janela de horário, aquecimento gradual e variação de texto.
|
||||
- Detecção de pedido de descadastro (STOP) no inbound, com bloqueio automático.
|
||||
|
||||
### CRM
|
||||
|
||||
- Funil kanban com indexação fracionária de posição.
|
||||
- Vocabulário configurável por funil — o mesmo núcleo atende e-commerce, clínica, imobiliária, infoproduto e serviços.
|
||||
- Customer 360, contatos, etiquetas e linha do tempo unificada.
|
||||
- Integração com Nuvemshop para a vertical de e-commerce.
|
||||
|
||||
### Agentes de IA
|
||||
|
||||
- Agentes com RAG por organização (pgvector), análise de sentimento e controle de orçamento por organização.
|
||||
- IA como responsável de primeira classe, sujeita às mesmas regras de governança de um humano.
|
||||
- Handoff IA→humano auditado, entregando resumo contextual (não a conversa crua).
|
||||
- Cadeia de 7 verificações antes de cada envio, em ordem fixa: descadastro, LGPD, anti-banimento, variação de texto, promessa determinística, promessa semântica e disclosure. Cada avaliação vira registro durável e auditável — inclusive as que barram o envio.
|
||||
- Servidor MCP interno.
|
||||
|
||||
### Governança de atendimento
|
||||
|
||||
- Atribuição e transferência auditadas, fila com posição e roteamento automático.
|
||||
- Escopo de visualização por papel, aplicado via RLS.
|
||||
- Métricas por atendente.
|
||||
|
||||
### Automação
|
||||
|
||||
- Fontes de captação: endpoint público por organização que recebe leads de landing pages, formulários e ferramentas externas.
|
||||
- Regras QUANDO/SE/ENTÃO, que nascem pausadas até revisão.
|
||||
- Webhooks de saída com proteção contra SSRF.
|
||||
- Nenhum trigger de banco faz HTTP: eventos vão para `event_log` e são drenados por rota agendada.
|
||||
|
||||
### LGPD
|
||||
|
||||
- Exportação e anonimização em cascata via workers, com anonimização preferida sobre exclusão.
|
||||
- Consentimento auditado.
|
||||
|
||||
### Self-host
|
||||
|
||||
- `hostgator-setup-kit`: instalação completa (app + WAHA + banco) com um comando.
|
||||
- `baseline.sql` idempotente e auto-curativo — atualização não quebra clone com dados legados.
|
||||
- 8 scripts de operação: `install`, `update`, `backup`, `restore`, `reset-password`, `reset-mfa`, `healthcheck` e o assistente de instalação em IA.
|
||||
- Imagem publicada em `ghcr.io/melgarafael/deskcommcrm` — a VPS não compila nada.
|
||||
|
||||
### Qualidade
|
||||
|
||||
- CI com dois portões obrigatórios: `verify` (typecheck, lint, testes unitários) e `invariants`.
|
||||
- O portão `invariants` sobe um Postgres limpo, aplica o `baseline.sql` em modo install e update, e roda **364 testes de invariante** em 56 arquivos — incluindo o teste de isolamento entre organizações, que prova que um usuário de uma organização não enxerga nenhuma linha de outra.
|
||||
- Suíte end-to-end em Playwright dirigindo o frontend.
|
||||
|
||||
### ⚠️ Requer atenção
|
||||
|
||||
- **Node 22 é obrigatório para desenvolvimento.** A suíte de invariantes instancia o cliente do Supabase, que exige o `WebSocket` global — nativo apenas a partir do Node 22. Isso não afeta quem apenas hospeda: a VPS roda a imagem pronta.
|
||||
|
||||
[Não lançado]: https://github.com/melgarafael/DeskcommCRM/compare/v1.0.0...HEAD
|
||||
[1.0.0]: https://github.com/melgarafael/DeskcommCRM/releases/tag/v1.0.0
|
||||
Reference in New Issue
Block a user