037ba3721f
Documento "ler primeiro ao voltar" reflete estado atual: 15 areas auditadas, zero critico/alto aberto, A#31 reformulada como "Preparacao pra deploy" (MVP nao tem cloud Supabase nem secrets reais). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
125 lines
4.6 KiB
Markdown
125 lines
4.6 KiB
Markdown
# HANDOFF — 2026-04-19 (após Sessões 1-10)
|
|
|
|
Documento de continuidade. **Quando voltar, comece lendo esta página.**
|
|
Todo o estado vive no banco (`/saas/desenvolvimento` → Auditoria/Verificações/Testes).
|
|
|
|
---
|
|
|
|
## 📊 Estado atual
|
|
|
|
| | |
|
|
|---|---|
|
|
| **A# auditoria** abertos | **1** (A#31 — reformular pra "Preparação pra deploy") |
|
|
| **V# verificações** abertos | 14 (todos médios/baixos adiados, plano completo no DB) |
|
|
| **🔴 Críticos** | **0** ✅ |
|
|
| **🟠 Altos** | **0** ✅ |
|
|
| **Áreas auditadas** | **15** (todas as principais do SaaS) |
|
|
| Vitest | 208/208 |
|
|
| SQL integration | 33/33 |
|
|
| E2E (Playwright) | 5/5 |
|
|
| Migrations totais | 18 |
|
|
| Último commit | `d6eb992` (pushed ao Gitea) |
|
|
|
|
---
|
|
|
|
## 🎯 Próxima sessão — A#31-rev (Preparação pra deploy)
|
|
|
|
**Contexto:** A#31 era "Deploy real" mas você não tem cloud Supabase nem
|
|
secrets reais ainda (MVP). Precisa virar **preparação** — deixar tudo
|
|
pronto pra quando criar a cloud você executar sozinho com mínimo atrito.
|
|
|
|
**Tarefas (~2-3h, zero risco):**
|
|
|
|
1. **`DEPLOY.md`** na raiz — checklist de 8 passos com comandos exatos +
|
|
diagnóstico de erros comuns + ordem de execução
|
|
2. **Validar migrations num container limpo** — recriar banco do zero,
|
|
aplicar as 18 migrations + seeds em ordem, garantir zero erro
|
|
3. **`.env.example`** completo — todas VITE_ vars + cada secret de edge
|
|
function listado com instrução
|
|
4. **Auditoria das edge functions** — CORS, fallback de env var ausente,
|
|
error handling. Documentar quais env cada uma precisa
|
|
5. **Script `db.cjs deploy-check`** — comando que valida pré-condições
|
|
antes de deploy (ordena migrations, verifica diffs, lista secrets)
|
|
6. **Atualizar HANDOFF.md** com seção "Pra deployar"
|
|
|
|
**Quando voltar, é só dizer "começa A#31-rev" e eu sigo o plano.**
|
|
|
|
---
|
|
|
|
## 📚 Memória persistente (carregada automaticamente)
|
|
|
|
Já saved no memory system (`MEMORY.md` — não precisa lembrar):
|
|
- **Sanitização sempre** — trim, length, regex em toda entrada/saída
|
|
- **Priorização por severidade** — críticos+altos imediatos, médios/baixos adiam com plano
|
|
- **Self-hosted > provider externo** — LGPD/clínico
|
|
- **Gotcha supabase_admin** — `psql -U supabase_admin -h localhost` direto pra ALTER POLICY em tabelas owned
|
|
- **Tracking dev_*_items** — A#/V#/T# vivem no DB, UI `/saas/desenvolvimento`
|
|
- **Project Overview** + **MVP Assessment**
|
|
|
|
---
|
|
|
|
## 📦 Commits relevantes
|
|
|
|
```
|
|
d6eb992 Sessoes 6cont-10: hardening em 6 areas + scan completo do SaaS ← último
|
|
7c20b51 Sessoes 1-6 acumuladas: hardening B2, defesa em camadas, +192 testes
|
|
d088a89 (commit anterior do projeto)
|
|
```
|
|
|
|
---
|
|
|
|
## 🗂️ Áreas auditadas (15)
|
|
|
|
| Área | Estado |
|
|
|---|---|
|
|
| auth, router, stores, agenda, seguranca, saas | 100% fechado/ok |
|
|
| **pacientes** ✨ | **100% fechado** (V#9 — script extraído; template breakdown adiado pra quando houver E2E) |
|
|
| **documentos** ✨ | 100% fechado |
|
|
| **calendario** ✨ | 100% fechado |
|
|
| **servicos** ✨ | 100% fechado |
|
|
| financeiro | 5 fechados, 6 médios/baixos adiados |
|
|
| comunicacao | 5 fechados, 5 médios/baixos adiados |
|
|
| tenants | 6 fechados, 2 baixos adiados |
|
|
| addons | 3 resolvidos, 1 médio adiado |
|
|
| central_saas | 1 alto fechado, 2 médios adiados |
|
|
|
|
✨ = áreas 100% fechadas (zero pendência).
|
|
|
|
---
|
|
|
|
## ⚠️ Pendências documentadas no DB (14 V# adiados)
|
|
|
|
Todos médios/baixos com plano completo em `dev_verificacoes_items.acao_sugerida`.
|
|
**Não esquecer.** Sprint dedicado de polimento depois do deploy.
|
|
|
|
- **financeiro** (6): parcelamento CHECK, payouts flow, recurrence DELETE,
|
|
composables, máscara PIX, dashboard inadimplência
|
|
- **comunicacao** (5): notifications/schedules silos, email_templates_global
|
|
filtros, retention notification_logs, dashboard health, audit dismissals
|
|
- **tenants** (2): owner_users policies, company_profiles + dev_user_credentials
|
|
- **central_saas** (2): rate limit voto, valores tipo_acesso
|
|
- **addons** (1): UI de extrato
|
|
|
|
Plus (não V#):
|
|
- **PatientsCadastroPage template breakdown** — 1951 linhas. Esperar E2E
|
|
- **Sprint de polimento** dos 14 médios/baixos juntos
|
|
|
|
---
|
|
|
|
## 🛠️ Stack lembretes (caso precise)
|
|
|
|
- **DB local:** `docker exec -i supabase_db_agenciapsi-primesakai psql -U postgres -d postgres`
|
|
- **DB local como supabase_admin (pra ALTER POLICY em tabelas owned):**
|
|
```bash
|
|
docker exec -i -e PGPASSWORD=postgres -e PGCLIENTENCODING=UTF8 \
|
|
supabase_db_agenciapsi-primesakai \
|
|
psql -U supabase_admin -d postgres -h localhost -f migration.sql
|
|
```
|
|
- **Vitest:** `npx vitest run`
|
|
- **SQL integration:** `node database-novo/tests/run.cjs`
|
|
- **E2E:** `npx playwright test` (precisa dev server: `npm run dev`)
|
|
|
|
---
|
|
|
|
## 📌 Bom descanso, até amanhã!
|