Skip to content

Latest commit

 

History

History
1066 lines (717 loc) · 64.4 KB

CHANGELOG.md

File metadata and controls

1066 lines (717 loc) · 64.4 KB

Changelog

[0.6.34-alpha] - 2026-08-17

Corrigido

  • a categoria visual ignora valores derivados conflitantes e usa exclusivamente o código real BUG_REPORT, sem inferência pelo título, fluxo ou tasks.kind;
  • a prioridade padrão e a ordenação explícita seguem a hierarquia persistida Urgente > Crítica > Alta > Média > Baixa, preservando o código URGENT_PRODUCTION e exibindo o rótulo Urgente;
  • contagens passam a usar singular/plural natural e durações ausentes são exibidas como — / —.

Adicionado

  • filtro de etapa derivado das etapas ativas da empresa, combinável com ciclo, estado, categoria, prioridade, prazo e busca;
  • ordenação server-side por tarefa, etapa, prioridade e criação, com direção acessível e paginação numérica compacta;
  • ação condicional Limpar filtros, cabeçalhos de grupo compactos e descrições acessíveis para tipo, estado, prioridade, responsáveis e duração.

Validado localmente

  • regressões de categoria, filtros combinados, etapas, agrupamentos, preferência por usuário, paginação, ordenação, densidade e acessibilidade;
  • homologação com dados reais, migration 017 aplicada e viewport na VPS permanecem pendentes do usuário.

[0.6.33-alpha] - 2026-08-17

Corrigido

  • filtro, badge e ícone Bug/Dev passam a usar exclusivamente o tipo real BUG_REPORT, eliminando a divergência com tasks.kind;
  • cadastro de Bug prefere o tipo canônico BUG_REPORT, sem selecionar automaticamente um tipo genérico aplicável a ambos os fluxos;
  • o tipo de sistema preserva código e ID e passa a apresentar o nome de domínio Report Bug.

Adicionado

  • preferência de agrupamento da lista persistida por empresa e usuário, com os modos Nenhum, Etapa, Usuário, Prioridade e Tipo de tarefa;
  • regressões automatizadas para filtro, badge, ícones Lucide, grupos sem duplicação e isolamento da preferência entre usuários.

Validado localmente

  • classificação e agrupamento com fixtures, persistência simulada, lint, testes e build;
  • aplicação da migration 017, sessão autenticada e homologação na VPS permanecem pendentes do usuário.

[0.6.32-alpha] - 2026-08-16

Adicionado

  • lixeira administrativa de tarefas com exclusão lógica, restauração pelo mesmo ID e purge permanente exclusivo de Super Admin;
  • confirmação reforçada pelo código da tarefa e pela frase ESVAZIAR LIXEIRA, protegidas também no backend;
  • agrupamento visual paginado por etapa, responsável da etapa, prioridade semântica e tipo real da tarefa;
  • categoria resumida Bug/Dev, usando Bug e Code2 do lucide-react com descrição acessível.

Alterado

  • prioridade persistida URGENT_PRODUCTION passa a ser apresentada como Urgente, sem alterar código ou ID;
  • notificações, métricas e contadores operacionais desconsideram tarefas na lixeira;
  • purge remove dependências em ordem, desvincula relações opcionais e coloca anexos físicos em quarentena transacional antes da remoção.

Validado localmente

  • permissões Admin/Super Admin, confirmações, soft delete, restauração, auditoria, integridade do purge, categorias e cinco modos de agrupamento;
  • aplicação da migration e homologação real da lixeira em PostgreSQL/VPS permanecem pendentes do usuário.

[0.6.31-alpha] - 2026-08-16

Corrigido

  • download de backup não tenta mais inserir o ID opaco de 32 caracteres na coluna UUID audit_events.entity_id; a auditoria preserva o ID em new_values antes do streaming;
  • frontend substitui a navegação por link pelo cliente HTTP autenticado com responseType: 'blob', filename validado, Object URL temporária, revogação e mensagem de erro JSON;
  • formulário SMTP passa a usar um único card responsivo de 590px, organizado nas quatro linhas solicitadas;
  • testes confirmam o uso de Bug do lucide-react para BUG_REPORT, sem aplicação indevida aos demais tipos.

Validado localmente

  • streaming binário, headers, bytes, 400/401/403/404/500, traversal, symlink, arquivo ausente, download Blob, revogação da Object URL e tratamento de erro;
  • homologação com arquivo real, sessão e proxy na VPS permanece pendente do usuário.

[0.6.30-alpha] - 2026-08-16

Adicionado

  • download autenticado de backups por streaming, com resolução por catálogo, raiz canônica, proteção contra traversal/symlink e bind mount somente leitura;
  • timelines técnicas de Testes, GitHub e Anexos nos lados Backend/Frontend, além de Histórico alternado sem reordenação visual;
  • abas Abertas/Concluídas, ícones centralizados por tipo e indicadores acessíveis de cronômetro na lista de tarefas;
  • cards Bugs Backend/Frontend e drill-down paginado dos indicadores operacionais do Dashboard, atribuindo o bug ao responsável da tarefa vinculada;
  • classificação persistente technical_area para anotações GitHub pela migration 015.

Alterado

  • stepper de etapas sem card externo e com menor ocupação vertical;
  • SMTP reorganizado em três linhas responsivas, com visibilidade controlada da senha;
  • histórico administrativo limitado a 21 eventos, paginado de sete em sete dentro do modal;
  • backups criptografados permanecem restritos, agora com leitura 0640 exclusiva ao grupo operacional usado pelo backend.

Validado localmente

  • cobertura de segurança de download, contratos de timeline, ciclo de tarefas, dashboard sem N+1, SMTP e paginação de usuários;
  • homologação visual autenticada e operação real na VPS permanecem dependentes do ambiente do usuário.

[0.6.29-alpha] - 2026-08-12

  • corrige o EACCES entre updater root e backend non-root por um GID operacional compartilhado e persistido;
  • grava status e catalogo atomicamente como root:<ops-gid> 0640, preservando logs internos em 0600;
  • cria diretorios setgid com privilegio minimo, reconcilia somente artefatos allowlisted e cobre o ciclo com 25 testes locais;
  • mantem o polling do frontend dependente do retorno terminal real, sem mascarar indisponibilidade permanente.

[0.6.28-alpha] - 2026-08-12

  • refatora o WebUpdater seguindo o fluxo simples e funcional do Full Password;
  • remove changelog, backup e manutencao HTTP dos gates de atualizacao;
  • elimina release/imagem candidata e tags permanentes de rollback;
  • preserva HMAC, nonce, replay protection, fila privada, lock, migrations e health;
  • corrige a identidade instalada para usar installation.json e a release ativa;
  • torna o polling do frontend resiliente a restart e pausa notificacoes durante update;
  • adiciona fixture de regressao 0.6.26-alpha para 0.6.27-alpha e contrato local com 38 cenarios.

[0.6.27-alpha] - 2026-08-11

Corrigido

  • listagem de backups deixa de ser bloqueada por pedidos operacionais historicos invalidos durante a reconciliacao de auditoria;
  • estados de backup (available/verified) e estados da fila passam a possuir contratos independentes e validacao estrita;
  • status terminal passa a informar a operacao concluida, incluindo criacao, verificacao, restore, exclusao e update;
  • bootstrap do tema foi movido para arquivo estatico same-origin, preservando o primeiro paint sem violar script-src 'self'.

Testes

  • fixtures cobrem catalogo available, catalogo corrompido, mensagens terminais, pedido historico invalido, ciclo simulado de exclusao e ausencia de JavaScript inline.

[0.6.26-alpha] - 2026-08-11

Corrigido

  • WebUpdater deixa de depender de backup pre-update automatico e nao executa verificacao ou restore de dados durante update;
  • rollback passa a ser explicitamente operacional e registra mutacao do banco e necessidade potencial de restore manual;
  • verificacao e restore usam /opt/devflow/tmp root-owned 0700, eliminando bind source no /tmp privado do updater.

Adicionado

  • gerenciamento de backups pelo frontend para Super Admin, com listagem, criacao, verificacao, restore e exclusao;
  • fila HMAC allowlisted, polling, auditoria, rate limit, confirmacoes fortes e lock operacional global;
  • backup de seguranca validado antes de cada restore e catalogo sanitizado com retencao de 30 dias;
  • contrato transacional schema v3 e documentacao da migracao unica exigida pela 0.6.24-alpha.

[0.6.25-alpha] - 2026-08-11

Adicionado

  • tema escuro completo para login, navegação autenticada, páginas, tabelas, formulários, dropdowns, modais e estados semânticos;
  • alternância acessível por ícones Moon/Sun na barra superior e na tela de login;
  • ThemeContext com preferência light/dark, persistência local e acompanhamento do sistema antes da primeira escolha manual.

Experiência

  • preferência é aplicada antes do primeiro paint para evitar flash de tema incorreto;
  • foco, placeholders, campos desabilitados, impressão e viewport mobile preservam contraste e usabilidade.

Validado

  • 36 cenários automatizados de tema, layout, componentes e regressão;
  • alternância, reload, persistência e viewport 390 x 844 verificados no navegador local; homologação visual na VPS permanece pendente.

[0.6.24-alpha] - 2026-08-11

Corrigido

  • WebUpdater passa a executar health de runtime explícito dentro do container updater, sem depender do loopback, dos certificados em arquivo ou do systemd do host;
  • pre-update, health final e rollback público selecionam o contexto correto entre execução manual no host e execução interna pelo daemon.

Segurança

  • HTTP e HTTPS do modo daemon atravessam o devflow-nginx pelo IP da rede devflow_edge;
  • HTTPS continua validando certificado, hostname e cadeia de confiança com a CA store explícita da imagem, sem curl -k, host networking ou mounts sensíveis adicionais.

Validado

  • 20 cenários locais cobrem os contextos host/daemon/candidate e preservam HMAC, fila, allowlist de serviços e isolamento do updater;
  • Docker, HTTPS e WebUpdater reais na VPS permanecem pendentes de homologação pelo usuário.

[0.6.23-alpha] - 2026-08-11

Adicionado

  • migration 014 para inserir FRONTEND_APPROVAL entre Frontend e Update GitHub em fluxos existentes;
  • revisão dedicada com aprovação, reprovação, comentário e anexo de evidência;
  • gate declarativo que exige aprovação registrada antes do avanço.

Alterado

  • novos tenants recebem a sequência Roadmap/Report Bug → Backend → Frontend → Aprovação do Frontend → Update GitHub → Testando → Revisando → Produção;
  • Cliente, Desenvolvedor Backend e Desenvolvedor Frontend deixam de ser opções de Perfis Validados no QA;
  • cards de testes passam para 490 px e cards de anexos para 490 x 171 px.

Validado

  • lint e testes direcionados de workflow, frontend e migrations; homologação real na VPS permanece pendente.

[0.6.22-alpha] - 2026-08-10

Corrigido

  • backend e updater agora compartilham explicitamente ${DEVFLOW_UPDATER_ROOT} no caminho canônico /var/lib/devflow/updater;
  • o controller grava a solicitação somente em DEVFLOW_UPDATER_QUEUE_DIR=/var/lib/devflow/updater/requests, sem fallback relativo;
  • daemon, health checks e status transacional usam a mesma raiz interna persistente.

Observabilidade

  • o backend registra [UPDATER_QUEUE] Arquivo de solicitação gravado em: somente depois da promoção atômica bem-sucedida.

Validado

  • validações locais do backend, Compose, daemon e contrato da fila; homologação real na VPS permanece pendente.

[0.6.21-alpha] - 2026-08-10

Adicionado

  • card de checklist junto ao avanço da etapa, com evidências concluídas, pendências obrigatórias e alerta visual no botão bloqueado;
  • perfis técnicos ativos carregados no modal de QA para seleção por checkboxes.

Alterado

  • ambiente e perfis validados usam grupos de checkboxes; Backend e Frontend usam selects de situação predefinida;
  • testes são ordenados do mais recente para o mais antigo em timeline centralizada com cards de 350 px;
  • anexos usam timeline centralizada e cards compactos com dimensões exatas de 350 x 122,15 px.

Validado

  • lint, 35 testes frontend, build Vite e check integral executados localmente;
  • navegador autenticado e VPS permanecem pendentes de homologação.

[0.6.20-alpha] - 2026-08-10

Corrigido

  • adicionada a migration 013 para remover idempotentemente o trigger legado em ambientes que ja registraram uma versao anterior da migration 012 com task_tests vazia;
  • a migration de reconciliacao tambem garante source_section e amplia o tipo existente para VARCHAR(50) sem perda de dados.

Validado

  • executor detecta 13 migrations e a regressao cobre tanto a 012 corrigida quanto a 013 de compatibilidade;
  • PostgreSQL e VPS reais permanecem pendentes de homologacao.

[0.6.19-alpha] - 2026-08-10

Corrigido

  • migration 012 remove de forma idempotente o trigger legado de imutabilidade antes do backfill de task_tests, eliminando o SQLSTATE P0001;
  • task_tests possui criacao defensiva com CREATE TABLE IF NOT EXISTS, preservando UUIDs compativeis com tarefas e usuarios;
  • source_section e adicionada com ADD COLUMN IF NOT EXISTS e VARCHAR(50), sem ENUM ou bloco de excecao forcada;
  • o trigger nao e recriado porque o modulo de QA exige edicao auditada e exclusao logica.

Validado

  • regressao estatica cobre a ordem entre remocao do trigger e backfill, ausencia de RAISE EXCEPTION e DDL idempotente;
  • lint, testes, build e validadores de migrations executados localmente;
  • PostgreSQL e VPS reais permanecem pendentes de homologacao.

[0.6.18-alpha] - 2026-08-10

Corrigido

  • backend e updater passam a montar a mesma fila persistente do host em DEVFLOW_UPDATER_ROOT, eliminando dependencia de volume Docker opaco;
  • caminhos internos de requests e status devem ser absolutos e compartilhar a mesma raiz, com criacao atomica do diretorio preservada;
  • atualizacao externa por SSH recria o updater somente depois da promocao e do health publico, aplicando o bind persistente sem permitir autorrecriacao durante pedidos web;
  • polling da interface entra em fase de reinicio para HTTP 404/502/503/504, timeout ou erro de rede e para de consultar o request consumido;
  • durante o reinicio, somente /api/health e consultado; o primeiro HTTP 200 recarrega imediatamente a interface.

Validado

  • regressao cobre o contrato do bind compartilhado, caminhos absolutos, handoff por 404 e a maquina de estado fila/health;
  • lint, testes, build e check integral executados localmente;
  • Docker e VPS reais permanecem pendentes de homologacao.

[0.6.17-alpha] - 2026-08-09

Adicionado

  • migration 012 evolui task_tests com autoria da sessao, contexto, perfis, ambiente, informacoes de backend/frontend, notas de teste, status e exclusao logica auditavel;
  • origem validada dos anexos por secao (geral, backend, frontend, testes, github ou comentarios);
  • cards de QA com 350 px, modal de cadastro/consulta/edicao e upload isolado por teste;
  • linha do tempo vertical de anexos com data, autor, origem e preview.

Seguranca e compatibilidade

  • autoria de QA permanece exclusivamente derivada da sessao autenticada;
  • registros legados recebem backfill e continuam compativeis com as regras de transicao existentes;
  • exclusao de QA e anexos permanece logica; nenhum dado de dossie e removido fisicamente.

Validacao

  • lint, testes, build e check integral executados localmente;
  • migration em PostgreSQL, navegador autenticado, Docker e VPS permanecem pendentes de homologacao.

[0.6.16-alpha] - 2026-08-09

Corrigido

  • status terminal completed/failed da fila passa a ter precedencia sobre fases detalhadas obsoletas como health/rollback;
  • polling usa um unico intervalo por request, sem recriacao a cada mudanca de fase e sem requisicoes simultaneas;
  • consulta de status possui timeout de 5 segundos para que conexoes pendentes nao bloqueiem novas tentativas;
  • HTTP 502/503/504, timeout e Network Error mantem o estado "Reiniciando servicos..." sem interromper o polling;
  • primeira resposta 200 com ciclo completed encerra o intervalo, grava o aviso de retorno e força window.location.reload();
  • ciclo failed encerra o polling sem reload e informa a falha/rollback de forma segura.

Validado

  • regressao reproduz 503 seguido de { status: 'completed', state: 'health' } e comprova a decisao de reload;
  • lint, testes frontend e check integral do repositorio aprovados localmente;
  • reinicio real de containers e retorno da VPS permanecem pendentes de homologacao.

[0.6.15-alpha] - 2026-08-09

Adicionado

  • migration 011 registra o instante de entrada na etapa, vincula eventos do cronometro a stage_id e cria sessoes de touch time por tarefa, etapa e usuario;
  • detalhe da tarefa agrega touch time individual por desenvolvedor e apresenta identificacao visual com estado ativo;
  • anexos de imagem e video recebem preview nativo; documentos e compactados usam icones Lucide por extensao.

Alterado

  • lead time passa a ser o intervalo automatico entre entrada e saida da etapa; touch time permanece manual em um unico toggle Iniciar/Pause;
  • transicao encerra sessoes manuais e intervalo anterior, registra o evento com a etapa de origem, zera o timer e abre o ciclo da nova etapa atomicamente;
  • Roadmap nao abre intervalos, rejeita operacao do timer e nao renderiza o card de tempo;
  • conclusao manual do cronometro foi removida da API e da interface; o encerramento ocorre pela transicao;
  • backend deriva Content-Type da extensao permitida e usa disposicao inline somente para imagens, videos e PDF.

Validado

  • lint backend/frontend, 82 testes backend, 30 testes frontend e build Vite de producao aprovados localmente;
  • migration, PostgreSQL, Docker, navegador autenticado e VPS reais permanecem pendentes de homologacao.

[0.6.14-alpha] - 2026-08-09

Corrigido

  • leitura do pedido de update passa a localizar o JSON sequencialmente em requests, processing, processed e failed, retornando 404 somente quando ausente em todo o ciclo;
  • arquivo da fila define o estado publico pending/processing/completed/failed, enquanto status/ preserva fases detalhadas como backup, migrations, health e rollback;
  • arquivos de fila e status recebem validacao de UUID, tipo, symlink, tamanho, schema e identidade antes da resposta;
  • polling web trata timeout, Network Error e HTTP 502/503/504 como reinicio temporario, mantem o loading e continua tentando;
  • retorno completed pela API grava o aviso de conclusao e recarrega a pagina automaticamente.

Validado

  • regressao move o mesmo request pelos quatro diretorios e verifica os estados esperados, detalhe de migrations, erro seguro e 404 real;
  • frontend cobre indisponibilidade temporaria, normalizacao do contrato e reload condicionado ao estado concluido.

[0.6.13-alpha] - 2026-08-09

Corrigido

  • POST /api/tasks/:id/timer deixa de reutilizar parametros PostgreSQL com tipos ambiguos; UUID, varchar, text, bigint e boolean recebem casts explicitos;
  • inicio do cronometro valida tarefa, associacao do operador, estado ativo, etapa com controle de tempo e sobreposicao dentro do mesmo lock transacional;
  • autoria de tasks e task_timer_events deriva somente de req.user.id; campos de autoria enviados pelo cliente sao rejeitados;
  • controller responde JSON 400/403/404/409 para falhas previstas e registra falhas inesperadas com [TIMER_ERROR] antes do 500 generico.

Validado

  • SQL anterior reproduziu 42P08: inconsistent types deduced for parameter $3 (text versus character varying) em PostgreSQL local;
  • SQL corrigido persistiu running, UUID do ator e evento STARTED; testes cobrem lock, autoria, concorrencia, permissao e respostas semanticas.

[0.6.12-alpha] - 2026-08-09

Corrigido

  • Monaco editavel deixa de receber value e setForm a cada tecla; o modelo interno preserva Enter, Backspace e whitespace sem ciclos React;
  • salvamento passa a ler editor.getValue() diretamente, mantendo o codigo exatamente como digitado;
  • wrapper clicavel com altura minima de 400 px, borda, padding, foco programatico, placeholder e loading estavel;
  • arquivo e linguagem alinhados em uma grade compacta no modal GitHub.

Validado

  • regressao cobre defaultValue, ausencia de onChange no codigo, leitura no save e area minima clicavel;
  • deteccao de linguagem continua dependente apenas do nome do arquivo, sem parsing durante a digitacao do codigo.

[0.6.11-alpha] - 2026-08-09

Corrigido

  • heap do Node ampliado para 4096 MB exclusivamente no estagio Docker que compila o frontend;
  • Monaco e seu adaptador React isolados em chunk dedicado por manualChunks, reduzindo a pressao do empacotamento principal;
  • versao promovida apos rollback da homologacao de 0.6.10-alpha, permitindo nova deteccao pelo updater.

Validado

  • build Vite local concluido com o chunk monaco separado;
  • contrato do Dockerfile e configuracao Rollup protegidos por teste automatizado.

[0.6.10-alpha] - 2026-08-09

Corrigido

  • solicitacao de atualizacao liberada exclusivamente ao Super Admin com sessao valida, sem exigir MFA, preservando CSRF;
  • cronometro com toggle unico Iniciar/Pause, bloqueio concorrente e spinner durante a requisicao, sem acao de cancelamento na API de tempo;
  • mudanca administrativa de estado com JSON semantico 400/404/409 e resposta 500 generica para falhas reais de infraestrutura.

Validado

  • Monaco, autodeteccao Pascal .pas/.dpr, persistencia estruturada, autor derivado da sessao e migrations 009/010 permanecem cobertos;
  • nenhuma migration publicada foi reescrita e a arquitetura isolada do instalador permaneceu inalterada.

[0.6.9-alpha] - 2026-08-09

Adicionado

  • Pascal/Delphi, PowerShell e SCSS ao seletor e a deteccao por extensao do editor de codigo;
  • modo automatico reversivel, tema reativo e componente Monaco reutilizavel com configuracao acessivel;
  • migration 010 para exclusao logica e auditavel dos cards GitHub, protegida por tasks.manage.

Corrigido

  • escolha manual de linguagem deixa de ser sobrescrita quando o nome do arquivo muda;
  • codigo passa a ser obrigatorio, com limite real de 200 KB medido em UTF-8 no frontend e backend;
  • cards exibem linguagem, autor, data, etapa historica e etapa atual, preservando registros legados.

Desempenho e seguranca

  • Monaco continua carregado sob demanda e previews somente leitura sao montados apenas quando expandidos;
  • payload rejeita author_id e stage_id; ambos continuam derivados da sessao e da tarefa no backend;
  • exclusao nao apaga dados, codigo nunca e executado e nenhum recurso depende de CDN.

[0.6.8-alpha] - 2026-08-09

Adicionado

  • anotacoes GitHub estruturadas por arquivo, linguagem, codigo, explicacao, autor e etapa, com migration 009;
  • Monaco Editor e workers empacotados localmente, deteccao de linguagem por extensao, modo somente leitura e copia do codigo;
  • contrato schema 2 para pedidos fisicos do updater com aliases operacionais, persistencia atomica e assinatura HMAC.

Corrigido

  • cabecalho da lista de tarefas com maior contraste e remocao do subtitulo redundante;
  • cronometro com um unico botao reativo para iniciar, retomar ou pausar, sem acao de cancelamento na interface;
  • falhas conhecidas de transicao de estado retornam JSON 400/404/409 e falhas internas recebem diagnostico sanitizado;
  • painel de update recarrega somente depois de detectar indisponibilidade e retorno do health, mantendo o polling de cinco segundos.

Seguranca

  • codigo permanece renderizado como texto pelo Monaco, sem innerHTML, scripts externos ou CDN;
  • pedido do updater e criado com permissao restritiva, arquivo temporario exclusivo e rename atomico antes do consumo.

[0.6.7-alpha] - 2026-08-08

Adicionado

  • configuracao SMTP persistente, cifrada com AES-256-GCM, teste direto com diagnostico sanitizado e uso centralizado pela outbox;
  • multiplos registros GitHub por tarefa, com migration 008, cards e modal acessivel para anotacoes tecnicas;
  • acompanhamento do update pelo health publico a cada cinco segundos, com recarga e aviso quando a nova versao retorna.

Corrigido

  • lista de tarefas compactada em linhas de 40 px, avatares, duracoes e datas em linha unica;
  • ordenacao padrao por Urgente Producao, Bug, Critica, Alta, Media e Baixa, com desempate pelas tarefas mais recentes;
  • erros conhecidos do cronometro convertidos em respostas 400/409, sem mascarar falhas inesperadas;
  • solicitacao de update passa a exigir MFA alem de sessao Super Admin e CSRF.

Seguranca

  • senha SMTP nunca retorna pela API nem entra em auditoria; testes possuem rate limit e retornam somente falhas sanitizadas;
  • anotacoes GitHub sao renderizadas como texto simples, sem interpretacao de HTML.

[0.6.6-alpha] - 2026-08-07

Corrigido

  • filtro de projetos deixa de enviar UUID vazio e o backend normaliza clientes sem filtro;
  • eventos do cronometro usam mapeamento explicito, incluindo CANCELLED;
  • botao de atualizacao pode ser reutilizado depois de uma solicitacao concluida ou com falha.

Adicionado

  • codigos de clientes e projetos gerados no backend e imutaveis pela API;
  • perfis validados e anexo de evidencia em testes, anexos em comentarios e conversa em formato de chat;
  • referencia de codigo em alteracao nos metadados GitHub;
  • submenu de Servidor SMTP com configuracao sanitizada e teste pela outbox.

[0.6.5-alpha] - 2026-08-07

Corrigido

  • health candidato com versao, commit, migration e tags de imagem explicitos, sem promover antecipadamente o estado instalado;
  • promocao atomica da release seguida por installation.json schema v3, health interno estrito e health publico;
  • backup pre-update autenticado pelo ID da transacao, identidade anterior, migration, snapshot e hashes;
  • rollback apos migrations com restore obrigatorio do PostgreSQL e uploads antes de release, estado, containers e health antigos;
  • imagens anteriores preservadas por ID/tag imutavel, candidata identificada pelo commit e worker removido quando ausente na topologia anterior;
  • transacao schema v2 com estados finais nao ambiguos e gate de recuperacao manual quando o banco nao puder ser restaurado.

Validacao

  • fixture reproduz a tentativa 0.5.5-alpha para 0.6.4-alpha, incluindo estado instalado antigo durante o candidate health;
  • 40 cenarios locais cobrem candidate health, promocao, backup, rollback antes/depois de migrations, falha de restore e imagens.

[0.6.4-alpha] - 2026-08-06

Corrigido

  • motor update.sh totalmente nao interativo, sem dependencia de TTY ou validacao de requests web;
  • CLI manual separada em update-cli.sh, com check, changelog, confirmacao numerica e cancelamento normal;
  • daemon com fila autenticada, replay protection, lock, recuperacao de requests interrompidos e status sanitizado;
  • bootstrap de update para instalacoes antigas, releases imutaveis e rollback sem comandos Git destrutivos;
  • painel do Super Admin com versoes, changelog, salvaguardas e polling do estado da atualizacao.

Seguranca

  • allowlist exata de remotes e servicos, sem controle de Compose pela API e sem recriar o updater em execucao;
  • backup verificado, manutencao HTTP 503, migrations sob lock, health e rollback automatico preservados.

[0.6.3-alpha] - 2026-08-06

Adicionado

  • notificacoes internas paginadas, contador, leitura individual/coletiva e links contextuais;
  • preferencias por usuario para canais, movimentacoes, atribuicoes e atrasos, mantendo seguranca critica obrigatoria;
  • recuperacao de senha com resposta neutra, token aleatorio armazenado por hash, expiracao, uso unico e revogacao de sessoes;
  • outbox transacional cifrada, idempotencia, worker dedicado, retry exponencial, timeout e auditoria sanitizada;
  • teste SMTP enfileirado exclusivo do Super Admin e configuracao por ambiente sem exposicao de credenciais.

Seguranca

  • notificacoes e jobs de etapa sao gravados antes do commit e enviados somente depois pelo worker;
  • tarefas em Roadmap nao vazam por atribuicoes, contadores ou notificacoes;
  • payloads temporarios de e-mail sao protegidos por AES-256-GCM e apagados depois da entrega;
  • recuperacao invalida tokens anteriores e encerra todas as sessoes abertas.

[0.6.2-alpha] - 2026-08-06

Adicionado

  • estimativa de desenvolvimento em segundos, apresentada como dd-hh-mm;
  • cronometro com estados not_started, running, paused, completed e cancelled;
  • tempo produtivo restante, tempo corrido desde o inicio, atraso e filtro de tarefas atrasadas;
  • historico imutavel de inicio, pausa, retomada, conclusao, cancelamento, estimativa e atraso.

Seguranca

  • Roadmap restrito no backend ao criador, Admin e Super Admin;
  • fora do Roadmap, acesso limitado a participantes, responsaveis do projeto e administradores;
  • predicados de visibilidade aplicados a busca, detalhe, relacionados, anexos, notificacoes e dashboard;
  • operacoes de cronometro autorizadas pela responsabilidade da etapa e serializadas por lock no PostgreSQL.

[0.6.1-alpha] - 2026-08-06

Adicionado

  • telefone opcional validado no formato internacional E.164;
  • fluxo de alteracao do proprio e-mail com senha atual, e-mail pendente, token aleatorio com hash/expiracao e confirmacao;
  • edicao administrativa de usuario, senha temporaria, troca obrigatoria, reset de MFA e historico basico;
  • inventario de sessoes com login, ultimo acesso, IP, user-agent resumido, status e motivo de encerramento;
  • encerramento auditado de sessao individual ou de todas as sessoes de um usuario.

Seguranca

  • Admin nao administra Super Admin e nao eleva usuarios a Super Admin;
  • ultimo Super Admin e ultimo Admin ativos sao protegidos;
  • alteracoes de identidade, senha, papel, status, e-mail e MFA revogam sessoes aplicaveis;
  • senhas temporarias, tokens, hashes de sessao e cookies nao sao gravados em auditoria.

[0.6.0-alpha] - 2026-08-06

Adicionado

  • navegacao superior responsiva com dropdowns acessiveis, operacao por teclado e indicacao de rota ativa;
  • paginas proprias de Clientes e Projetos com pesquisa, filtros, paginacao, edicao, ativacao e exclusao protegida por vinculos;
  • permissoes clients.view, clients.manage e projects.view, aplicadas no backend por tenant;
  • associacao de equipe aos projetos e contagem dos vinculos de tarefas.

Alterado

  • rotas canonicas passam a usar /dashboard, /task, /team, /clients e /projects, com redirecionamentos das rotas anteriores;
  • botao Nova Tarefa foi removido do layout global e movido para a pagina de tarefas;
  • MFA, catalogos, fluxos e atualizacoes foram separados em rotas de Sistema.

[0.5.5-alpha] - 2026-08-05

Corrigido

  • a conclusao interativa agora drena o logger antes de exibir as credenciais iniciais no TTY original;
  • o bloco de credenciais passa a ser a ultima saida visivel e remove caminho protegido, resumo, health e diagnosticos internos;
  • informacoes operacionais continuam preservadas no log de instalacao, inclusive em execucao sem TTY.

Validacao local

  • os testes estruturais confirmam a ordem de drenagem, o delimitador final e a ausencia de saida posterior ao bloco;
  • a instalacao real na VPS permanece pendente de homologacao pelo usuario.

[0.5.4-alpha] - 2026-08-05

Corrigido

  • a politica persistente de MFA passa a usar optional por padrao, com opcoes admins e all controladas exclusivamente pelo Super Admin e auditadas;
  • a troca obrigatoria da senha temporaria permanece independente da configuracao voluntaria de MFA;
  • tokens CSRF sao vinculados a sessao, enviados pelo cliente HTTP central em operacoes mutaveis e renovados com no maximo uma repeticao para CSRF_INVALID;
  • a rota de setup de MFA deixa de ser confundida com a rota isenta de verificacao do segundo fator;
  • a leitura shell do schemaVersion numerico foi corrigida e o instalador agora valida/recarrega o estado com o codigo instalado antes de executar um novo processo de health;
  • a senha inicial e exibida uma unica vez no TTY original, somente depois do health aprovado, sem passar pelo log;
  • repair-installation-state.sh permite diagnosticar ou reparar apenas o estado schema v3 de uma instalacao existente, preservando dados, identidade, certificado e credencial.

Validacao local

  • 40 cenarios obrigatorios cobrem MFA, CSRF, estado instalado, reparo e credencial inicial;
  • testes unitarios exercitam a politica de MFA e o contrato CSRF vinculado a sessao;
  • VPS, Docker, Certbot, systemd, navegador e aplicativo autenticador reais permanecem pendentes de homologacao pelo usuario.

[0.5.3-alpha] - 2026-08-04

Corrigido

  • o instalador ativa /opt/devflow/app atomicamente antes de criar ou iniciar o updater no estagio 14;
  • falhas restauram um symlink anterior validado ou removem somente o symlink candidato de uma instalacao inicial;
  • installation-in-progress, protegido como root:root 0600, mantem o daemon saudavel e bloqueia o consumo da fila ate o health e o estado final serem confirmados;
  • o updater ganhou start_period, diagnostico sanitizado de falha e gates explicitos para daemon, ready file, container e Nginx;
  • a retomada de uma falha no estagio 14 reconstrói/recria somente updater e edge quando necessario, preservando banco, backend, frontend e migration saudaveis.

Validacao local

  • 24 cenarios obrigatorios validam symlink antecipado, rollback, marcador, ready file, health, preservacao material e retomada do estagio 14;
  • Docker, Certbot e a retomada real na VPS permanecem pendentes de homologacao pelo usuario.

[0.5.2-alpha] - 2026-08-04

Corrigido

  • sudo ./install.sh agora seleciona explicitamente --install no bootstrap publico quando nenhuma opcao de modo e informada;
  • --check, --dry-run, --install e --resume preservam suas semanticas explicitas;
  • execucao nao interativa de instalacao exige dominio, e-mail administrativo e confirmacao do firewall antes de qualquer mutacao;
  • cancelamento informa changes_applied=false, falhas internas preservam o exit code e mensagens finais distinguem verificacao, simulacao, instalacao e retomada;
  • testes de interface reproduzem a chamada publica sem argumentos e impedem a regressao para um preflight sem instalacao.

Validacao local

  • o fluxo publico foi exercitado com fixtures Bash e stubs sem rede ou mutacoes privilegiadas;
  • a instalacao real na VPS, Docker e Certbot permanecem pendentes de execucao pelo usuario.

[0.5.1-alpha] - 2026-08-04

Corrigido

  • O fluxo ACME temporário do DevFlow foi removido e substituído por Certbot standalone.
  • DNS A e IPv4 publico agora sao comparados por fontes independentes; portas e firewall falham de forma fechada.
  • certificado, SAN, validade, symlinks e chave privada sao validados antes da geracao do Nginx runtime;
  • falhas de instalacao preservam containers e --resume recalcula o ponto material da instalacao parcial;
  • PostgreSQL, backend, frontend, Nginx e updater seguem inicializacao ordenada e health checks reais;
  • renovacao usa Certbot do host, timer systemd e reload escopado ao devflow-nginx;
  • frontend/backend podem criar somente pedidos HMAC install-update; o daemon privado delega exclusivamente ao update.sh.

Validacao local

  • 30 cenarios obrigatorios cobrem standalone, DNS, portas, certificado, Compose, ordem, retomada, admin, renovacao, updater, rollback e desinstalacao;
  • Docker, Compose, Certbot, ACME, systemd e AMD64/ARM64 reais permanecem pendentes de homologacao manual na VPS.

Entradas anteriores a 0.5.0-alpha descrevem a arquitetura compartilhada historica, descontinuada e removida como caminho operacional.

[0.5.0-alpha] - 2026-08-04

Alterado

  • o DevFlow passa a suportar exclusivamente instalacao isolada, com Nginx, Certbot, containers, redes, storage e certificados proprios;
  • o instalador interativo solicita somente dominio e e-mail administrativo, usa confirmacoes numericas e bloqueia 80/443 ocupadas sem adaptar terceiros;
  • o fluxo transacional possui 16 etapas, ACME HTTP antes de HTTPS, retomada segura e estado final schema v3;
  • PostgreSQL permanece apenas na rede interna; frontend e backend nao publicam portas no host;
  • update.sh permanece como motor unico para terminal e futura API allowlisted, com backup, manutencao, migrations, health e rollback;
  • health, diagnostico e uninstall foram reduzidos ao namespace exclusivo do DevFlow.

Removido

  • providers host-nginx, legacy-docker-nginx e o antigo wrapper de provider isolado;
  • adapters, overlays e fixtures de proxy compartilhado;
  • publicacao separada, migracao de proxy, escopo interno, reconciliacao e reparos especificos da arquitetura compartilhada.

Validacao

  • 30 cenarios obrigatorios verificam instalacao isolada, portas, DNS, e-mail unico, arquiteturas, migrations, Nginx, ACME, HTTPS, renovacao, rollback, update, backup, restore, uninstall, limites de rede e desacoplamento;
  • Docker/ACME/ARM64 reais continuam pendentes de homologacao manual na VPS.

[0.4.13-alpha] - 2026-08-04

Corrigido

  • o build backend deixa de herdar permissões 0700/0600 do checkout e normaliza /database e /database/migrations como root:root 0755, com todos os arquivos regulares em 0644;
  • o build rejeita diretório ausente/vazio, symlink, entrada não regular, ownership ou modos divergentes e executa o contrato novamente como USER devflow;
  • o probe operacional continua sem override de usuário, exige Config.User=devflow, UID não root, leitura/travessia, ausência de escrita/execução e SHA-256 correto;
  • EACCES no diretório e no arquivo agora são classificados como migration-directory-permission-denied e expected-migration-permission-denied, em vez de erro inesperado do runtime;
  • instalação, resume, update e reconciliação tratam violações de permissões como imagem inválida antes de migrations, manutenção ou promoção.

Validação

  • 29 cenários específicos cobrem os 28 requisitos de permissões e o comando oficial não root; o validador direto cobre também os marcadores de EACCES e usuário configurado;
  • Docker não está disponível na estação Windows, portanto build Alpine/ARM64 e execução real das migrations permanecem pendentes de homologação manual na VPS.

[0.4.12-alpha] - 2026-08-04

Corrigido

  • a validação da imagem candidata calcula a migration esperada a partir do checkout canônico, compara seu SHA-256 e vincula a inspeção ao ID imutável da imagem antes e depois do probe;
  • o probe usa o runtime Node da própria imagem, sem quoting do BusyBox, e diferencia diretório ausente, arquivo ausente, arquivo não regular, conteúdo divergente, troca de referência e falha do runtime;
  • a reconciliação registra referências, IDs, migration, resultado da validação, causa e rollback em estado transacional schema v2;
  • --retain-failed-candidates preserva opcionalmente tags diagnósticas após o rollback, imprime comandos exatos de inspeção/remoção e nunca promove ou executa as candidatas;
  • health.sh considera publicação externa habilitada somente quando o estado consistente também possui transação de publicação concluída para o mesmo domínio/provider e certificado DevFlow ativo.

Validação

  • a validação Docker real não foi executada nesta estação Windows porque Docker não está disponível;
  • testes locais com mocks/fixtures cobrem o nome dinâmico, códigos de saída, identidade da imagem, conteúdo, retenção e estado; a nova homologação operacional permanece pendente de execução manual na VPS.

[0.4.11-alpha] - 2026-08-04

Corrigido

  • installation.json passa ao schema v2 estrito com somente os 17 campos operacionais definitivos; versão, commit, ref e repositório são derivados exclusivamente de /opt/devflow/source;
  • publish.sh passa a ser seguro por padrão e oferece --check, --dry-run, --publish e --rollback, com backup persistente do estado, rollback automático em falha parcial e remoção seletiva apenas do certificado criado pela transação;
  • o provider host-nginx valida layouts sites-available/sites-enabled e conf.d, Certbot, renewal timer, hook, certificado, nginx -t, reload e restauração;
  • o vhost compartilhado cobre WebSocket, uploads, restore, downloads, CSP, HSTS, rate limit, timeouts, buffers e gzip;
  • health.sh expõe prontidão de provider, proxy, publicação, certificado, renovação, rollback, identidade, estado e adapter, além de overall_health;
  • update-operation.sh estabelece o contrato reutilizável check-update, download-update, validate-update, install-update e rollback-update; o rollback manual reutiliza a transação e o backup autenticado do updater.
  • a migração controlada do proxy promove proxyMigrationExecuted no estado v2 e restaura o snapshot do estado em rollback automático, sem escrever no repositório Full Password.

Validação

  • 48 checks finais não mutantes cobrem publicação, rollback, provider, certificados, release, estado, atualização, host Nginx, proxy e health;
  • a prova local é estrutural/simulada; emissão TLS, portas públicas, reload e rollback completos ainda devem ser executados na VPS de homologação antes de classificar o modo compartilhado como homologado em ambiente real.

Todas as alterações relevantes do DevFlow são registradas neste arquivo.

[0.4.10-alpha] - 2026-08-03

Corrigido

  • criada reconciliação transacional separada para reconstruir somente backend/frontend a partir de /opt/devflow/source, sem promover o código operacional mais novo para a release instalada;
  • imagens candidatas recebem versão e revision OCI canônicas, passam por validação isolada e substituem apenas os dois serviços da aplicação;
  • IDs e tags anteriores, configuração privada e estado JSON são preservados para rollback automático; container, mount e migration do PostgreSQL são verificados antes e depois;
  • APIs de releases legadas sem campo commit são classificadas como unsupported-by-installed-release, sem relaxar a validação de versão ou das imagens;
  • publicação externa, update e reparo de estado são serializados contra a reconciliação, que não altera proxy, Full Password, portas públicas ou migrations.

Homologação

  • 20 cenários obrigatórios cobrem promoção, rollback, preservação, modos, API legada, idempotência e bloqueio de publicação;
  • a execução real de --reconcile na instalação 0.4.8-alpha permanece pendente na VPS ARM64.

[0.4.9-alpha] - 2026-08-03

Corrigido

  • a identidade instalada passa a ser resolvida exclusivamente pelo checkout canônico protegido em /opt/devflow/source, eliminando o commit antigo recarregado do .env durante uma retomada;
  • installation.json adota schemaVersion: 1, nomes camelCase únicos, validação estrita e gravação atômica com fsync e permissões root:root 600;
  • o reparador idempotente cria backup protegido antes de migrar somente os metadados, sem reiniciar containers, executar migrations ou tocar no proxy;
  • health, version, backup, restore, diagnose, publish e update consultam a mesma identidade central; publicação e update permanecem bloqueados enquanto o estado estiver inconsistente;
  • update registra previousInstalledCommit e somente promove o commit candidato depois dos health checks; rollback valida e restaura a identidade anterior comprovada;
  • a API de health inclui o commit sanitizado e a reconciliação confirma versão e revision OCI de backend/frontend.

Homologação

  • 25 cenários obrigatórios mais o gate de publicação cobrem checkout, schema, backup, atomicidade, idempotência, modos, update, rollback e preservação;
  • a instalação interna 0.4.8-alpha está saudável na VPS ARM64; o reparo real do commit legado e o dry-run da publicação externa permanecem pendentes.

[0.4.8-alpha] - 2026-08-03

Corrigido

  • a validação dos artefatos de migration deixou de criar um container pelo Compose antes das redes e passa a inspecionar diretamente a imagem resolvida com docker run --rm --network none;
  • marcadores internos diferenciam diretório ausente, migration inicial ausente e falha do runtime Docker, evitando falsos negativos de conteúdo;
  • stdout é aceito somente por allowlist e stderr recebe sanitização antes do diagnóstico, sem ambiente, volumes ou redes do serviço;
  • install e update fornecem explicitamente a imagem já resolvida ao validador independente de provider;
  • o estado transacional registra rootCause e avança de completed_stage=06-validate-images para resume_from_stage=07-create-networks.

Testes e homologação

  • 24 cenários automatizados cobrem imagem válida/inválida, redes ausentes, modos compartilhado/isolado, providers, runtime Docker, sigilo, retomada, ARM64 e preservação do Full Password;
  • a imagem devflow-backend:latest da tentativa 0.4.7-alpha foi comprovada correta diretamente na VPS; o falso negativo ocorreu antes da execução do comando interno;
  • Docker 29.6.1, Compose 5.3.1 e a retomada real da etapa 06 permanecem pendentes de repetição após esta publicação.

[0.4.7-alpha] - 2026-08-03

Corrigido

  • MIGRATIONS_DIR=/database/migrations agora é permanente na imagem e explícito no serviço backend do Compose, inclusive quando docker compose run substitui o CMD;
  • o executor valida diretório e arquivos antes de conectar ao PostgreSQL, bloqueia diretório vazio e registra somente caminho, quantidade, estado e código de saída sanitizados;
  • install e update usam um único comando de migration, e a imagem candidata comprova a presença de 001_initial_schema.sql antes de alterar o schema;
  • a retomada com PostgreSQL saudável preserva container e dados, mantém resume_from_stage=09-run-migrations, reconstrói o backend alterado e reutiliza o frontend anterior somente com proveniência comprovada;
  • confirmações interativas deixaram de aceitar frases livres e usam menus numéricos fail-closed, com cancelamento controlado e rejeição de execução sem TTY.

Testes e homologação

  • 20 cenários automatizados cobrem migrations, transação, lock, retomada ARM64, PostgreSQL 16 Alpine, preservação do banco e Full Password;
  • 16 cenários cobrem escolhas, entradas inválidas, ausência de TTY, interrupção, sigilo e os três menus de instalação;
  • Docker/Compose e PostgreSQL reais não foram executados no Windows; a retomada da etapa 09 permanece pendente na VPS ARM64.

[0.4.6-alpha] - 2026-08-03

Corrigido

  • todas as operações Compose do DevFlow agora usam o construtor único build_devflow_compose_command, sempre com --project-directory, --env-file e arquivos Compose validados;
  • o dry-run de instalação parcial usa /opt/devflow/config/devflow.env para a interpolação runtime, sem carregar o arquivo como código shell, copiá-lo ou exibir valores;
  • uma instalação nova sem env realiza somente validação estrutural com placeholders temporários não secretos;
  • falhas de renderização são classificadas antes do resolvedor de imagens, eliminando a mensagem secundária incorreta sobre imagem ausente;
  • stderr do Compose não é reproduzido: somente categoria, nome permitido da variável e caminho esperado são registrados;
  • configuração parcial inválida retoma da etapa 04-configuration; se não houver banco, volume ou migration, a recuperação exige confirmação literal e preserva cópia protegida;
  • qualquer evidência de dados persistentes bloqueia regeneração de senha e exige recuperação manual.

Testes e homologação

  • 24 cenários cobrem env válido, ausente, protegido, valores especiais, não execução de dotenv, renderização, JSON, sanitização, retomada, ARM64, Compose 5.3.1 e fail-closed;
  • uma auditoria dedicada impede novas construções Compose divergentes fora da biblioteca central;
  • Docker/Compose reais, recuperação da configuração e retomada ainda precisam ser repetidos na VPS ARM64.

[0.4.5-alpha] - 2026-08-03

Corrigido

  • eliminado o encerramento silencioso causado pelas linhas 233–234 de scripts/install.sh no commit 1152236: uma verificação booleana de etapa retornava 1 como status final de detect_partial_installation, chamada diretamente sob set -e;
  • um trap sanitizado e um logger protegido em /tmp/devflow-install-bootstrap.*.log agora existem antes de qualquer import potencialmente falível;
  • argumentos ausentes ou desconhecidos produzem erro funcional e dica de --help, sem shift além dos argumentos;
  • --resume exige a confirmação exata RETOMAR DEVFLOW e nunca prossegue silenciosamente;
  • leituras Git do clone fornecido usam GIT_OPTIONAL_LOCKS=0 e uma assinatura de integridade comprova que .git/index não mudou.

Retomada legada

  • a ausência de install-transaction.json é tratada como evidência esperada de uma tentativa anterior à transação;
  • source, configuração, imagens, containers e estado são classificados separadamente;
  • o dry-run apenas planeja a reconstrução; a gravação atômica acontece somente depois da confirmação do --resume;
  • o estado reconstruído registra origem legada e etapa real de retomada, sem segredos;
  • imagens antigas permanecem preservadas e são reconstruídas com cache quando não comprovam versão e commit.

Testes e homologação

  • 26 cenários cobrem imports, set -e, logger inicial, parsing, estado legado, clone read-only, sigilo, ARM64, Compose 5.3.1 e fail-closed;
  • a execução real de dry-run e retomada permanece pendente na VPS ARM64; nenhuma instalação, publicação externa ou migração foi executada nesta correção local.

[0.4.4-alpha] - 2026-08-03

Corrigido

  • a identificação de imagens deixou de usar docker compose images -q backend, que retorna vazio antes da criação do container mesmo após uma build bem-sucedida;
  • backend, frontend e PostgreSQL agora são resolvidos pelo JSON do Compose, normalizados sem confundir registries e confirmados por docker image inspect;
  • backend e frontend possuem nomes explícitos e rótulos OCI de versão e commit para permitir reutilização comprovada;
  • health.sh diferencia presença das imagens, saúde dos containers, migration e saúde interna.

Retomada

  • install.sh --resume reconhece uma instalação parcial somente quando checkout, configuração e avanço de commit são seguros;
  • 14 etapas formais são persistidas atomicamente em /opt/devflow/state/install-transaction.json, sem segredos;
  • falhas preservam checkout, configuração e imagens válidas, removendo apenas recursos incompletos do DevFlow;
  • imagens antigas sem rótulos de proveniência são reconhecidas como presentes, mas reconstruídas uma vez para comprovar versão e commit.

Testes e homologação

  • 24 cenários cobrem resolução, normalização, imagens ausentes, Compose fora do diretório, retomada, estado transacional, rollback preservando imagens, ARM64 e Compose 5.3.1;
  • a falha real ocorreu em Ubuntu 24.04.4 ARM64 após construir devflow-backend:latest e devflow-frontend:latest; nenhum container DevFlow foi iniciado e o Full Password permaneceu inalterado;
  • a retomada real, migrations, containers e health ainda dependem de execução na VPS; nenhuma publicação externa foi realizada nesta correção local.

[0.4.3-alpha] - 2026-08-02

Adicionado

  • instalação interna explícita por --install-internal ou --install-scope internal, sem dependência de domínio, Nginx ou HTTPS;
  • publicação posterior transacional em scripts/publish.sh, sem reinstalar a aplicação ou executar migrations;
  • estado operacional por escopo em /opt/devflow/state/installation.json e health interno independente de HTTPS;
  • acesso de homologação por túnel SSH documentado.

Corrigido

  • propriedade de 80/443 agora cruza ss, docker ps, docker inspect e docker port, reconhecendo fullpassword_nginx somente com evidência coerente;
  • ocupação das portas públicas bloqueia somente publicação, ACME e migração, sem impedir containers e serviços locais;
  • frontend e backend permanecem vinculados a 127.0.0.1; PostgreSQL continua sem porta publicada no host;
  • o frontend interno encaminha /api/ diretamente ao backend pela rede Docker.

Segurança

  • o escopo interno não altera Full Password, /etc/nginx, certificados, portas 80/443 ou configurações de proxy;
  • falhas internas removem somente recursos incompletos do DevFlow e preservam dados e infraestrutura de terceiros.

Homologação

  • 0.4.2-alpha teve --check executado na VPS ARM64; o dry-run completo foi bloqueado antes de alterações pela classificação anterior;
  • 0.4.3-alpha ainda depende de novo check, dry-run interno e instalação interna na VPS;
  • nenhuma instalação, publicação ou migração foi executada nesta alteração local.

[0.4.2-alpha] - 2026-08-02

Corrigido

  • o bootstrap público deixou de fixar uma versão alpha e passa a detectar o SemVer do checkout validado de main;
  • --ref vSEMVER e --expected-version SEMVER oferecem pin explícito, com divergência detalhada e sem eval;
  • origem, referência, commit remoto, limpeza, arquivos rastreados, ausência de symlinks e consistência entre componentes permanecem fail-closed;
  • a política SemVer, leitura estrita de VERSION, comparação e consistência foram centralizadas em scripts/lib/version.sh e reutilizadas por bootstrap, install, update, version e health;
  • o updater aceita pin opcional e valida a árvore Git remota antes de backup ou qualquer mutação.

Testes

  • 19 cenários cobrem evolução dinâmica de main, tags, pins, SemVer, divergências, identidade Git, commit e ausência de mutação em falha;
  • auditoria de constantes classifica ocorrências históricas e bloqueia versões antigas em configuração operacional.

Homologação

  • a tentativa real anterior foi interrompida antes da instalação pelo bootstrap desatualizado;
  • nenhuma instalação real foi executada nesta correção;
  • esta versão alpha permanece não aprovada para produção.

[0.4.1-alpha] - 2026-08-02

Corrigido

  • --check e --dry-run da migração agora apresentam mappings reais, ocupação da porta 127.0.0.1:18081, estado do Nginx do host, saúde funcional do Full Password e blockers allowlisted;
  • o override temporário é validado com o Docker Compose real sem expor o JSON interpolado, comparando serviços, mounts, redes, ambiente, restart e a única troca de portas permitida;
  • o Compose original é validado separadamente como fonte de rollback para as portas públicas 80/443;
  • o vhost planejado preserva frontend, API, restore de backup, limites de upload, timeouts e headers de encaminhamento;
  • a futura transação valida frontend, API e fronteira de autenticação pelo loopback antes de iniciar o Nginx do host;
  • rollback para primeiro o Nginx do host, comprova liberação das portas, restaura somente fullpassword_nginx e valida o serviço publicamente.

Evidências

  • relatório sanitizado do dry-run em /var/log/devflow/proxy-migration-dry-run.log, sem conteúdo do ambiente ou credenciais;
  • 21 cenários automatizados cobrem gates, falhas antes/depois da troca, listeners, Compose, rollback, sigilo e cálculo de readiness;
  • migration_ready=true somente é emitido quando todos os gates aplicáveis e o rollback estão comprovados.

Homologação

  • nenhuma migração, troca de porta, parada de container, inicialização/reload de Nginx ou emissão de certificado foi executada nesta etapa;
  • o teste runtime de 127.0.0.1:18081 permanece corretamente como not-executed durante o dry-run;
  • esta versão alpha não está aprovada para produção.

[0.4.0-alpha] - 2026-08-02

Adicionado

  • contrato versionado de providers e estado persistente em /opt/devflow/state/infrastructure-provider.json;
  • provider padrão host-nginx, provider isolado e adaptador Docker legado explícito;
  • virtual host atômico em sites-available/sites-enabled, fallback conf.d, TLS, health e renovação Certbot;
  • utilitário separado de migração do proxy com check, dry-run, dupla confirmação, override neutro e rollback;
  • validações automatizadas para provider, loopback, isolamento do banco, migração e preservação de terceiros.

Alterado

  • frontend e API do provider padrão são publicados somente em 127.0.0.1; PostgreSQL continua sem porta no host;
  • install, update, health e uninstall resolvem o provider pelo estado persistente;
  • legacy-docker-nginx foi classificado como descontinuado e nunca é selecionado automaticamente.

Segurança

  • resolução transitiva de brace-expansion fixada em 1.1.17; a auditoria local não reporta vulnerabilidades conhecidas;

Homologação

  • nenhuma instalação ou migração real foi executada nesta etapa;
  • --check, --dry-run, emissão/renovação TLS, troca de portas e rollback induzido permanecem pendentes na VPS;
  • esta versão alpha não está aprovada para produção.

[0.3.3-alpha] - 2026-08-02

Corrigido

  • FULLPASSWORD_COMPOSE_FILE e demais estados de descoberta passam a ser inicializados antes de qualquer função sob set -u;
  • o Compose original é descoberto pela label com.docker.compose.project.config_files, normalizado pelo working directory e validado, com fallback controlado para /opt/fullpassword/docker-compose.yml;
  • caminhos ausentes, relativos sem base, inexistentes ou não legíveis produzem bloqueio funcional e relatório sanitizado, nunca erro interno do Bash;
  • descoberta de Compose, validação do caminho, inventário de inputs protegidos e merge possuem contratos separados e parâmetros explícitos;
  • trap ERR registra apenas script, linha, função, código e operação lógica, sem ambiente ou segredos.

Testes

  • 20 cenários de descoberta do Compose, incluindo variável ausente, labels, fallback, múltiplos arquivos, espaços, root simulado e regressão unbound variable;
  • auditoria de inicialização e modo estrito em sete entrypoints e na biblioteca operacional herdada;
  • homologação do novo dry-run comum e privilegiado permanece pendente na VPS.

[0.3.2-alpha] - 2026-08-02

Corrigido

  • diagnóstico comum distingue inputs protegidos do Compose de incompatibilidade entre diretórios;
  • --check retorna passed-with-privileged-dry-run-required sem falhar quando a validação completa exige root;
  • --dry-run comum encerra sem alterações, informa o arquivo protegido e apresenta o comando privilegiado completo;
  • sudo --dry-run usa --project-directory /opt/fullpassword, consome o .env somente pelo Docker Compose e mantém toda saída interpolada em temporário 0700;
  • merge estrutural preserva serviços, imagens, restart, ambiente, portas, mounts, volumes e redes originais;
  • saída e erros do Compose são reduzidos a resultados derivados, sem valores sensíveis;
  • temporários são removidos em sucesso, erro e sinais, e a auditoria bloqueia leitura direta, cópia ou mutação de /opt/fullpassword/.env.

Testes

  • 20 cenários automatizados para inputs Compose protegidos, privilégios, sanitização, separação de modos e limpeza;
  • homologação real de sudo --dry-run permanece pendente na VPS; o modo compartilhado não está aprovado para produção.

[0.3.1-alpha] - 2026-08-02

Corrigido

  • todos os artefatos do adaptador compartilhado foram centralizados em /opt/devflow;
  • o override Compose passou para /opt/devflow/config/proxy/fullpassword-nginx.override.yml, com mounts de origem absoluta;
  • /opt/fullpassword passou a ser tratado estritamente como origem somente leitura do Compose e da configuração runtime;
  • diagnóstico ampliado com legibilidade da origem, gravabilidade do DevFlow, comando e resultado sanitizado do merge entre diretórios;
  • --dry-run avalia a capacidade do filesystem para a futura instalação root sem tentar escrever em /opt;
  • estado operacional em JSON separado de dados persistentes: instalação, versão e adaptador em /opt/devflow/state;
  • retomada de instalação inicial incompleta por fast-forward verificado do checkout preservado em /opt/devflow/source;
  • testes transacionais e auditoria estática agora falham diante de comandos de escrita destinados ao Full Password.

Homologação

  • validações locais cobrem contrato, merge modelado, rollback e preservação da fixture read-only;
  • --check, --dry-run e instalação compartilhada real permanecem pendentes na VPS Linux; esta versão não está aprovada para produção.

[0.3.0-alpha] - 2026-07-31

Adicionado

  • adaptador persistente e independente para o contrato comprovado do fullpassword_nginx;
  • Compose override gerenciado de forma independente (caminho substituído em 0.3.1-alpha), sem modificar o Compose original;
  • virtual host exclusivo em /opt/devflow/config/nginx/devflow.conf e templates separados para ACME, operação e manutenção;
  • rede externa persistente devflow_edge, com aliases exclusivos para frontend e backend e PostgreSQL restrito à rede interna;
  • validação fail-closed do merge do Compose, preservando portas, mounts, redes e definições originais;
  • prova HTTP da rota ACME antes da emissão do certificado de dev.sti1.com.br;
  • validação de Nginx em container descartável conectado às redes originais e DevFlow;
  • testes transacionais de instalação, repetição, reinstalação, atualização, falhas, rollback e desinstalação.

Alterado

  • o diagnóstico read-only pode retornar compatible-with-compose-override somente para o inventário exato aprovado;
  • instalação, health check, atualização e desinstalação reconhecem explicitamente DEVFLOW_SHARED_PROXY_ADAPTER=fullpassword-nginx;
  • o atualizador preserva ou cria transacionalmente a rede externa ao migrar instalações anteriores;
  • a desinstalação remove apenas o override, o virtual host e a conexão de borda gerenciados; o certificado DevFlow exige opção e confirmação próprias.

Segurança

  • /opt/fullpassword/docker-compose.yml, docker/nginx.runtime.conf, volumes, certificados e repositório do Full Password permanecem fora de escrita;
  • somente o serviço nginx é recriado com os dois arquivos Compose; dependências e containers de terceiros não são recriados;
  • qualquer falha de ACME, certificado, merge, nginx -t, recriação ou health de qualquer domínio restaura o snapshot anterior;
  • o suporte permanece alpha e não homologado até os ensaios reais de Docker, Nginx, certificado, rede e rollback na VPS.

[0.2.0-alpha] - 2026-07-31

Adicionado

  • diagnóstico sanitizado e somente leitura de proxy compartilhado, com inventário de containers, mounts, redes, configuração efetiva, certificados e mecanismo de reload;
  • rede de borda devflow_edge separada da rede interna do PostgreSQL;
  • testes automatizados da política compartilhada e das transações de configuração Nginx;
  • bootstrap público standalone com download seguro, checkout temporário, validação de origem, commit e VERSION;
  • auditoria automatizada de todos os commits, objetos e blobs alcançáveis do histórico Git;
  • atualização segura por release imutável, com consulta da versão disponível na main do GitHub;
  • exibição de versão instalada, versão disponível e changelog antes da confirmação;
  • backup autenticado e validado como gate obrigatório da atualização;
  • modo de manutenção para proxy isolado e Nginx compartilhado;
  • migrations sob lock, reconstrução controlada dos containers e health checks em camadas;
  • rollback automático com restauração do backup, retorno da release e dos containers anteriores;
  • logs e relatório sanitizados de atualização;
  • scripts/version.sh para identificação de versão e commit;
  • scripts/health.sh para diagnóstico operacional com código de saída confiável.

Alterado

  • modos isolado e compartilhado passam a explicar explicitamente que containers, volumes, banco e storage do DevFlow permanecem próprios;
  • promoção e remoção do arquivo exclusivo devflow.conf passam a ser atômicas, com backup e rollback também em falha de reload;
  • instalação e atualização passam a utilizar HTTPS público sem credenciais na VPS;
  • relatório inicial registra versão, commit, branch, data, URL do repositório e canal de atualização;
  • install.sh passa a tratar exclusivamente instalação inicial;
  • a configuração instalada registra o checkout operacional usado para buscar atualizações;
  • o restore oferece um modo interno controlado para rollback, sem iniciar serviços prematuramente.

Segurança

  • fullpassword_nginx, Nginx containerizado e Caddy permanecem bloqueados após diagnóstico enquanto a integração persistente não for comprovada;
  • o ensaio real do commit 4d350685cbc9d21b49fb4c01176b846ca66d6584 foi interrompido antes de qualquer alteração no Full Password;
  • abertura pública condicionada à auditoria do checkout e do histórico, sem licença escolhida automaticamente;
  • atualização restrita ao repositório trinityrrocha/DevFlow, branch main, fast-forward e checkout limpo;
  • lock exclusivo impede atualizações concorrentes;
  • falhas anteriores à primeira mutação preservam o estado intacto; falhas posteriores acionam manutenção e recuperação automática.

[0.1.0-alpha] - 2026-07-31

Adicionado

  • baseline arquitetural, funcional e multi-tenant dos Documentos 001, 002 e 003;
  • backend, frontend, migration inicial e infraestrutura Docker Compose;
  • instalador de VPS, diagnóstico, backup, restauração e desinstalação segura;
  • publicação inicial privada para homologação.