7c20b518d4
Repositorio estava ha ~5 sessoes sem commit. Consolida tudo desde d088a89.
Ver commit.md na raiz para descricao completa por sessao.
# Numeros
- A# auditoria abertos: 0/30
- V# verificacoes abertos: 5/52 (todos adiados com plano)
- T# testes escritos: 10/10
- Vitest: 192/192
- SQL integration: 33/33
- E2E (Playwright, novo): 5/5
- Migrations: 17 (10 novas Sessao 6)
- Areas auditadas: 7 (+documentos com 10 V#)
# Highlights Sessao 6 (hoje)
- V#34/V#41 Opcao B2: tenant_features com plano + override (RPC SECURITY DEFINER, tela /saas/tenant-features)
- A#20 rev2 self-hosted: defesa em 5 camadas (honeypot + rate limit + math captcha condicional + paranoid mode + dashboard /saas/security)
- Documentos hardening (V#43-V#49): tenant scoping em storage policies (vazamento entre clinicas eliminado), RPC validate_share_token, signatures policy granular
- SaaS Twilio Config (/saas/twilio-config): UI editavel para SID/webhook/cotacao; AUTH_TOKEN permanece em env var
- T#9 + T#10: useAgendaEvents.spec.js + Playwright E2E (descobriu bug no front que foi corrigido)
# Sessoes anteriores (1-5) consolidadas
- Sessao 1: auth/router/session, normalizeRole extraido
- Sessao 2: agenda - composables/services consolidados
- Sessao 3: pacientes - tenant_id em todas queries
- Sessao 4: security review pagina publica - 14/15 vulnerabilidades corrigidas
- Sessao 5: SaaS - P0 (A#30: 7 tabelas com RLS off corrigidas)
# .gitignore ajustado
- supabase/* + !supabase/functions/ (mantem 10 edge functions, ignora .temp/migrations gerados pelo CLI)
- database-novo/backups/ (regeneravel via db.cjs backup)
- test-results/ + playwright-report/
- .claude/settings.local.json (config local com senha de dev removida do tracking)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
8.6 KiB
8.6 KiB
Development — Pendências
Registro vivo do que ficou pra próximas etapas da área de desenvolvimento. Nada aqui pode se perder — cada item vira task quando for tratado.
Última atualização: 2026-04-17 Responsável: Leonardo (user) · Implementação: Claude (dev sessions)
✅ Entregue até agora
Parte A — Banco + estrutura (2026-04-17)
- Pasta
development/criada com estrutura hierárquica (01-visao-geral…05-database) - 6 arquivos
.md/.txt/.htmlmovidos da raiz pra subpastas temáticas development/README.mdde navegação- Migration
20260417000001_dev_tables.sqlaplicada com 8 tabelas (dev_*) + RLS viais_saas_admin() - 3 seeds executados:
seed_030_dev_phases_items.sql→ 3 fases + 48 itemsseed_031_dev_auditoria.sql→ 14 bugs/débitos (12 resolvidos + 2 abertos)seed_032_dev_competitors.sql→ 7 concorrentes + 74 features + 60 linhas de matriz
Parte B — UI read-only (2026-04-17)
- Rota
/saas/desenvolvimentoregistrada emroutes.saas.js - Item de menu "Desenvolvimento > Área de Dev" em
saas.menu.js SaasDevelopmentPage.vuecom TabView de 7 abas- 7 sub-componentes (read-only):
DevOverviewTab.vue— stats + progresso das fases + últimas geraçõesDevRoadmapTab.vue— fases, items, filtros por status/prioridade/blocoDevEstruturaTab.vue— ESTRUTURA.md embutido + iframe do mapa-sistema.htmlDevAuditoriaTab.vue— bugs/débitos expansíveis, filtros por status/severidadeDevCompetitorsTab.vue— concorrentes + features agrupadas por categoria + matriz de gapsDevDatabaseTab.vue— comandos do db.cjs com copy-to-clipboard + log de execuçõesDevExportTab.vue— stubs de "Gerar ROADMAP.md/AUDITORIA.md/concorrentes.md/ESTRUTURA.md" (desabilitados, mensagem "Pendente — Parte C")
🔨 Parte C — Edição + integração CLI
C.1 Edição inline na UI ✅ CONCLUÍDA (2026-04-17)
Banco agora é source-of-truth. Implementado:
Infra reutilizável:
components/DevDrawer.vue— drawer lateral com footer (save/cancel/delete)components/DevField.vue— wrapper de label/input padronizadocomposables/useDraggableList.js— drag-drop HTML5 nativo (sem deps)- Migration
20260417000002_dev_tables_ordem.sql— colunaordememdev_auditoria_itemsedev_competitor_features
Roadmap (DevRoadmapTab.vue)
- Drawer pra editar item (todos os campos)
- Drag & drop pra reordenar items dentro de um bloco (via
BlocoItems.vue) - Mover item entre fases (via select no drawer)
- Criar novo item
- Excluir item (com confirm)
- Criar nova fase (botão "+" no seletor)
- Editar fase (nome, objetivo, timeline, status, datas)
- Excluir fase (cascade nos items)
Auditoria (DevAuditoriaTab.vue)
- Drawer com todos os campos (título, categoria, severidade, status, problema, solução, arquivo, tags, datas)
- Criar/editar/excluir
- Drag-reorder (desativado quando filtro ativo)
Concorrentes (DevCompetitorsTab.vue)
- CRUD de concorrente (slug, nome, país, foco, pricing, posicionamento, url, notas, ativo)
- CRUD de feature por concorrente (categoria, nome, descrição, fonte, url, destaque)
- CRUD de linha da matriz (domínio, feature, status, nota, importância)
- Edição inline de status na matriz (dropdown colorido)
Pendências menores que ficaram:
- Drag-reorder no overview das fases
- Drag-reorder na matriz de comparação
- Drag-reorder nas features dentro de um concorrente
- Drag-reorder do topo da lista de concorrentes
- Autosave nos drawers (hoje é "clique em Salvar")
- Undo recente
- Keyboard shortcuts (
/busca,nnovo,Escfecha) - Mudança rápida de status direto no badge do card (sem abrir drawer)
- Marcar fase como concluída automaticamente quando 100% items concluídos
- Quick filters no overview (só bloqueadores, só Fase 1, etc.)
C.2 Integração CLI local (opcional — usuário disse "copy-to-clipboard por ora")
Hoje todos os comandos do DevDatabaseTab.vue são copy-to-clipboard. Na próxima onda (se for quiser):
- Pequeno server Node em
development/cli-server/server.cjs- Escuta em
127.0.0.1:3456(localhost-only) - Whitelist de comandos:
backup,dashboard,schema-export,status,verify,migrate,seed,diff - Endpoints:
POST /run/:cmdcom SSE pra streaming do stdout - Escreve em
dev_generation_logo resultado
- Escuta em
- Script
npm run dev:clipra iniciar o server - Indicador na UI (verde/vermelho) mostrando se server está online
- Botões "Executar agora" ao lado de cada comando (alternativo ao copy)
C.3 Export banco → .md (botões da aba "Exportar")
- Edge Function
generate-roadmap-mdque lêdev_roadmap_phases+dev_roadmap_itemse retorna markdown - Edge Function
generate-auditoria-mdanálogo - Edge Function
generate-concorrentes-mdanálogo - Na UI: botão clica → fetch da edge function →
<a download>do resultado - OU: endpoint no CLI server escreve direto em
development/04-roadmap/ROADMAP.md(se CLI server existir) - Versionar os arquivos gerados no git (script "publish": gera tudo +
git add development/)
C.4 Pesquisa automática de concorrentes
O usuário disse "não sei" sobre essa feature. Quando for decidir:
- Edge Function
fetch-competitor-page— recebe URL, fazfetch()do HTML, retorna raw - UI: botão "Pesquisar este concorrente" abre modal com:
- Input de URL
- Preview do HTML capturado
- Campo de texto livre pra colar observações
- Opção: "extrair com IA" (chama Anthropic API com system prompt pra listar features)
- Features extraídas entram numa fila de revisão (usuário aprova → salva em
dev_competitor_features) - Histórico:
dev_competitor_featuresganha camposaprovado_em,aprovado_por,revisao_status
C.5 Melhorias secundárias
- Autosave nos drawers de edição (debounce 1s)
- Toast de feedback em toda mutação
- Undo recente (Ctrl+Z nos últimos 5 minutos via revision log)
- Keyboard shortcuts —
/foca busca,nnovo item,Escfecha drawer - Dark mode — se o app tem, garantir compatibilidade (surface tokens estão OK mas validar)
- Responsividade mobile — tabs scroll horizontal já tratado, mas drawers precisam virar modals full-screen em mobile
- Paginação/virtualização nas listas grandes (quando matriz passar de 100 linhas)
📋 Itens órfãos / decisões estratégicas
Decisões abertas (do ROADMAP.md)
Repetidas aqui pra não perder:
- Pricing — R$ 59, R$ 99 ou R$ 149 solo? Afeta quanto tempo você tem pra Fase 2.
- Tier clínica — existe desde o MVP ou só na Fase 3? Afeta TISS (item 32) e multi-unidade (42).
- Gateway de pagamento — Asaas (barato) vs Iugu (melhor DX)? Escolher agora.
- IA própria ou terceirizada? — Claude/OpenAI via API (rápido, custo variável) vs open-source local (lento, custo fixo)? Recomendo API pra começar.
- Foco da Fase 3 — IA-first, teleconsulta-first ou enterprise-first? Capacity só dá pra uma aposta no primeiro semestre.
- Data de lançamento MVP — se meta é 2026-06-01, Fase 1 termina mid-maio.
Itens técnicos abertos do AUDITORIA.md
Ainda não resolvidos (já no banco como dev_auditoria_items com status aberto / em_analise):
window.__guardsBound / window.__supabaseAuthListenerBound— flags globais no window (anti-pattern)- Arquivos obsoletos no projeto (cleanup parcial — a finalizar)
🎯 Ordem sugerida pra Parte C
Se quiser atacar agora:
- C.1 roadmap — drawer de edição (mais valor imediato — marcar items concluídos)
- C.1 auditoria — mesmo padrão do roadmap
- C.3 export — ROADMAP.md e AUDITORIA.md (para versionar o que você editou)
- C.1 concorrentes — edição completa
- C.2 CLI server — quando cansar de copy-paste
- C.4 pesquisa auto — se decidir que vale
📁 Referências
- Migração:
database-novo/migrations/20260417000001_dev_tables.sql - Seeds:
database-novo/seeds/seed_030_dev_phases_items.sql,seed_031_dev_auditoria.sql,seed_032_dev_competitors.sql - Frontend:
src/views/pages/saas/development/ - Rota:
src/router/routes.saas.js(pathdesenvolvimento) - Menu:
src/navigation/menus/saas.menu.js(grupo "Desenvolvimento") - Docs fonte:
development/04-roadmap/ROADMAP.md·development/02-auditoria/AUDITORIA.md·development/03-concorrentes/concorrentes.md