id: "BATCH-281" title: "REQ-272: release 3.0.0 e projeto de implantação do pré-lançamento" status: "implemented-pending-homologation" date: "2026-10-14" author: "executor" target_repo: "conn2flow" summary_short: "Releases gestor-v3.0.0, 3.0.1 e 3.0.2 (changelog, READMEs, notas do workflow, migração corrigida para MySQL 8) e projeto [REDACTED]." summary_medium: "1ª tentativa do CI falhou: chave primária anulável em distributed_exchanges (MySQL 8 recusa, MariaDB aceita). Corrigido, migrações testadas num banco vazio no lab e a tag refeita no commit corrigido.\nProjeto [REDACTED] aponta só para temp.conn2flow.com, banco conn2flow_temp."
BATCH-281 — REQ-272: release 3.0.0 e pré-lançamento
-
Projeto:
conn2flow—[REDACTED] -
Requisição: REQ-272; site coordenado: REQ-127 / BATCH-121
-
Topologia e autonomia:
dupla; produção e GitHub com autorização expressa do Humano em 2026-10-14 -
Status:
implemented-pending-homologation
Live Todo
-
[x] Commits pendentes das duas árvores (Humano autorizou): core
76ea7c3d,999ebd83. -
[x] Changelog 3.0.0 (en/pt-br) e READMEs (
a4b14c1f). -
[x]
./c2f manager:release major ...: commit1daf7b88, taggestor-v3.0.0, push. -
[x] CI da 1ª tentativa falhou em "Run Phinx migrations" (ver Achados); correção
9dcdc10d. -
[x] Notas da release no workflow trocadas da 2.10.13 para a 3.0.0 (
853fc7d0). -
[x] Tag refeita no commit corrigido, por decisão do Humano.
-
[x] 2ª tentativa: migrações OK, PHPUnit com 14 falhas (Achado 4); corrigido em
b2e484c6. -
[x] 3ª tentativa: CI verde; release
gestor-v3.0.0publicada em 14/10 18:49 UTC como Latest, comgestor.zip(18,8 MB) egestor.zip.sha256(tag emb2e484c6). -
[x] Reserva de versão do site (
site-pages/releases.json) em 3.0.0 (site BATCH-121). -
[x] Sincronizador de banco grava booleanos como 0/1 (Achado 5,
1670880c), fora do pacote 3.0.0. -
[x] 3.0.1 publicada (Achados 7 e 8): deploy por API sem a tela de manutenção na verificação, booleanos 0/1,
db-data.phpcarregado pelo próprio sincronizador. -
[x] 3.0.2 publicada (Achado 9): contrato das tabelas do projeto na atualização do sistema e falha de banco que falha a atualização.
-
[x] Validação real no
[REDACTED].local(Lab):c2f update:core [REDACTED]-local --tag=gestor-v3.0.2comTRANSACAO_COMMIT(23 layouts, 245 páginas, 226 templates, 92 componentes novos;publishersem duplicar) eproject:deploycom HTTP 200. O Humano conferiu o painel novo em todas as telas. -
[x] Branches de linha:
2.10.x➔gestor-v2.10.13;3.0.x➔gestor-v3.0.2; rascunho antigo da3.0.xemlegacy/3.0.x-postgres-planejamento(decisão do Humano). -
[x] Projeto
[REDACTED]noenvironment.json(não versionado; cópia anterior no scratchpad da sessão).
Achados
-
Migração recusada no MySQL 8.
20261002143002_create_distributed_exchanges_table.phpdeclarava a chave primáriaidsem'null' => false; esta versão do Phinx cria a coluna anulável. O MariaDB (Lab e produção) força NOT NULL em silêncio; omysql:8.0do CI recusa (1171 All parts of a PRIMARY KEY must be NOT NULL). Nenhuma outra migração tem o padrão. Validação: as 106 migrações do core rodaram do zero num banco vazio nolab(62 tabelas,idNOT NULL); banco de teste apagado depois. -
Notas fixas no workflow. O corpo da release em
.github/workflows/release-gestor.ymlera texto fixo da 2.10.13; a 3.0.0 sairia com as novidades erradas. -
conn2flow.comsem cron. Nenhuma tarefa agendada aponta para o usuárioconn2flowno servidor de produção (nem HestiaCP nem crontab do sistema). Afeta rotinas como renovação e lembretes; tratar antes da migração final (REQ-127). -
Testes que só falham no modo do CI. O CI roda com
CONN2FLOW_TEST_BOOTSTRAP_CONFIG=1(carrega oconfig.phpreal), que ligaconfirmacao-origem(req-217): 13 testes dos módulos distribuídos usavam Central de mentira e passaram a ser recusados. Cada classe agora desliga a conferência no própriosetUp(a Req217 continua testando-a). A 14ª falha era oai:synccom os nomessdd-*antigos (REQ-076 do ai-workspace): os quatro nomes foram trocados noAiSyncCommand. Reproduzido e validado nolabcom o.enve o banco do CI: 1.788 testes, 0 falhas, nos dois modos; Vitest 664; E2E 3 pulados. -
Booleano do JSON vira string vazia no PDO.
"sem_permissao": false(duas páginas do site) chegava como''no INSERT de página nova e o MariaDB estrito recusava (1366); a 2ª execução do pipeline dotempparou na etapa 6/8 com rollback.paramsBanco()ematualizacoes-banco-de-dados.phpconverte booleanos nos cinco pontos de gravação; testeAtualizacaoBancoBooleanosReq272Test. As sementes do core não têmfalse, por isso o pacote 3.0.0 não é afetado. -
Trava de deploy órfã. A execução interrompida com o fim da sessão deixou
../.c2f-deploy-locks/deploy-189b3e7a0bb03feb.lock(PID 43740, já morto, venceria em 3 h); removida à mão depois de conferir que o processo não existia. -
Deploy por API sempre desfeito. A tela de manutenção (req-210) responde 503 à verificação pós-deploy (req-198); toda entrega por
project:deployera revertida ([REDACTED].local). A manutenção sai antes da verificação; teste emManutencaoReq210Test. -
Atualização pelo painel vinda da 2.10.x. O processo já tinha o
gestor.phpantigo; orequire_oncedo sincronizador novo era pulado, odb-data.php(novo na 3.0) não entrava e a etapa de banco parava emdb_data_list_tables(). O painel ficava em Fomantic-UI porque as sementes não eram aplicadas. Os dois sincronizadores carregam odb-data.phpdireto. -
Tabelas de projeto e falha silenciosa. Na atualização do sistema,
db/data/schema-metadata.jsoné o do core e os*Data.jsondo projeto ficam na pasta:publishersem chave natural ➔1062 Duplicate entry.schemaMetadata()completa o contrato com oproject-schema-metadata.json(core tem precedência). E o retorno1do sincronizador incluído era ignorado: a atualização terminava "success" com o banco antigo; agora falha. -
Mídia do
[REDACTED].local. As imagens/files/...(1,7 GB em produção) nunca estiveram no Lab; não é defeito da atualização. O Humano decidiu não copiar.
Pendências
-
Página "Novidades" (
ai-workspace/*/docs/whats-new/) sem a 3.0.0.