Origem: Humano, 2026-09-30: promoção do BL-028, propostas C e G, conforme o parecer do Arquiteto.
Lotes Vinculados: BATCH-205 (motor de choques: painel, API, CLI), BATCH-206 (extensão do VS Code), BATCH-207 (exclusão declarativa de dados).
Status: em execução. BATCH-205 complete (2026-09-30, homologação humana pendente); BATCH-206 complete (extensão do VS Code, feita por agente executor na req-061 do conn2flow-ai-workspace, revisada e mesclada) e BATCH-207 complete (exclusão declarativa de dados) (o 207 depois que o trabalho da req-196 em atualizacoes-banco-de-dados.php for commitado). Aberta sem esperar versões da req-198, por pedido do Humano ("vai até o fim").
Repositório: [REDACTED]; a parte da extensão fica em [REDACTED].
Diretriz do Humano (2026-09-30): um motor de choques, nos dois sentidos
"Vai ter choques de arquivo sempre": a infraestrutura de diff e decisão é uma só e vale para subir e descer, no projeto e no core:
| Subir | Descer | |
|---|---|---|
| Projeto | deploy (API/pipeline) | recuperação (req-200) |
| Core | atualização do sistema | recuperação do core editado no servidor (req-200) |
Em todos os casos: diff de cada arquivo, decisão por arquivo (sobrescrever, manter, mesclar; "esse sim, esse não") e aplicação do resultado. A decisão pode ser tomada no CLI, na extensão do VS Code e no painel web. A req-200 usa o motor desta requisição, sem criar um fluxo próprio.
Itens
Exclusão de dados no ambiente em execução (BL-028 C)
-
Cada deploy leva o manifesto de recursos por dono (ids naturais por tabela: páginas, layouts, componentes, variáveis, templates, widgets, hooks).
-
O atualizador compara com o manifesto anterior do mesmo dono e remove (ou marca
status='D') o que saiu. -
Registro editado online (
user_modified) não é apagado: vira choque para decisão humana. -
Modo simulação com relatório antes de aplicar; a lista
deletarimperativa doschema-metadata.jsoncontinua para casos pontuais.
Diff e merge dos choques (BL-028 G)
-
Pacote do choque: antes de aplicar (ou em simulação), o ambiente devolve a lista de choques e as duas cópias de cada arquivo (a que vai ser publicada e a que está no ar), com hash e camada.
-
CLI:
-
c2f update:conflicts <projeto> [--pull]baixa o pacote e abre o diff; -
a decisão é por arquivo: sobrescrever, manter o que está no ar ou mesclar;
-
c2f update:resolveenvia a resolução, e a atualização aplica o arquivo mesclado.
-
-
Extensão VS Code (
conn2flow-ai-workspace/vscode-extension): lista os choques, abre o diff lado a lado no editor nativo, marca a resolução e envia, tudo pelo CLI. -
Diff online em
admin-atualizacoes: os mesmos choques e as mesmas três escolhas, para quem atualiza pelo painel. -
As resoluções ficam no registro de choques e viram a regra das próximas atualizações daquele arquivo.
Critérios de aceite
-
Um recurso removido do repositório some do banco no próximo deploy, exceto se editado online (vira choque).
-
Um choque de arquivo pode ser resolvido com mescla no CLI, na extensão e no painel, e a atualização aplica o resultado.
-
Testes automatizados; homologação no Lab.