Skip to content

test(kit): o cron sem crontab prévio ganha a prova das DUAS funções no mesmo processo (@rafaelbatistazz, do #726) - #735

Open
melgarafael wants to merge 3 commits into
mainfrom
reconciliacao/726
Open

test(kit): o cron sem crontab prévio ganha a prova das DUAS funções no mesmo processo (@rafaelbatistazz, do #726)#735
melgarafael wants to merge 3 commits into
mainfrom
reconciliacao/726

Conversation

@melgarafael

Copy link
Copy Markdown
Owner

Reconciliação do #726 de @rafaelbatistazz. O PR original fecha como mergeado.

A parte mais importante deste PR não é o código

@rafaelbatistazz achou, de forma independente, o mesmo defeito que @luiscgc91 achou no mesmo dia (#683#709, já na main). E os dois escreveram exatamente a mesma linha:

( { crontab -l 2>/dev/null || true; } | cron_merge … ) | crontab -

O conflito do merge foi só de comentário — o código era idêntico, caractere por caractere. Isso não é redundância: é a medida de quanto o defeito doía. Duas pessoas que não se falaram, no mesmo dia, instalando numa VPS limpa.

Ele também abriu a issue #715, que descreve o sintoma como quem o viveu: o instalador para logo depois de "✓ chave de cifra ativa no banco", cai em "A instalação parou", e os contêineres estão saudáveis. Rodar de novo passa — porque aí o crontab já não está vazio, o que faz o defeito parecer fantasma.

O que este PR acrescenta de verdade

O teste dele é melhor que o meu, e por uma razão concreta. O meu (tests/shell/cron-sem-crontab-previo.test.sh) roda cada função isolada. O dele roda as duas no mesmo processo — como o install.sh faz — e confere que as duas linhas foram gravadas:

cron numa VPS sem crontab nenhum (#715)
  ✓ sem crontab prévio, drain e agente agendados e o script segue

E ele plugou no lugar certo: o bloco entra em hostgator-setup-kit/test-validators.sh, reusando o dublê de crontab com CRONTAB_SANDBOX que já existia. 27 linhas, nenhuma infraestrutura nova. Os dois testes ficam — eles medem coisas diferentes, e o comentário do _common.sh agora diz qual mede o quê.

pnpm test:shell completo → exit 0, com os dois blocos verdes.

O que eu mudei

  1. O comentário do _common.sh virou um só, com os dois nomes, a issue install.sh morre em "Ativando as automações" quando o crontab do root está vazio #715 e o sintoma que ela descreve. Ele é longo de propósito: existe para a terceira pessoa não precisar descobrir isso de novo.
  2. Tirei o fragmento dele de .changes/. Dois fragmentos para uma mudança produzem duas entradas no CHANGELOG, descrevendo a mesma coisa — e quem lê fica procurando a diferença. Mas o texto dele é melhor, então ele foi para a seção da v1.20.0 no PR de release (Release 1.20.0 #734), com o crédito dos dois.

NÃO MEDIDO

Uma instalação real numa VPS virgem, de ponta a ponta. O que está medido é o mecanismo, no arquivo real, com o mesmo set -euo pipefail do instalador.

Fecha #726. Fecha #715.

rafaelbatistazz and others added 3 commits September 11, 2026 20:02
…sem crontab

Numa VPS nova o root não tem crontab: `crontab -l` sai 1 ("no crontab for
root"), e sob o `set -euo pipefail` do install.sh o cano inteiro falhava. O
`set -e` derrubava o script logo depois de o `crontab -` já ter gravado a
linha do drain, e a pessoa via "A instalação parou" com o CRM no ar.

`{ crontab -l 2>/dev/null || true; }` nas duas funções que agendam
(setup_event_log_drain_cron e setup_update_agent_cron).

O dublê de crontab da suíte já simulava o "no crontab", mas nenhuma rodada
agendava com o sandbox vazio. O teste novo roda as duas funções sob o mesmo
`set -euo pipefail`, sem crontab prévio, e cobra as duas linhas gravadas.

Closes #715
# Conflicts:
#	hostgator-setup-kit/_common.sh
@rafaelbatistazz escreveu um fragmento para o mesmo conserto que o #709 (de
@luiscgc91) já trouxe. Dois fragmentos para uma mudança produzem **duas
entradas** no CHANGELOG de quem atualiza, descrevendo a mesma coisa — e quem lê
fica procurando a diferença entre elas.

Fica o que já está na fila da v1.20.0. Mas **o texto dele é melhor**, e por um
motivo concreto: ele nomeia o que a pessoa VÊ. "Para logo depois de «chave de
cifra ativa no banco»", "mostra «A instalação parou»", "com o CRM já no ar",
"rodar de novo contornava" — é a descrição de quem viveu, não de quem leu o
diff. Esse texto foi para a seção da v1.20.0 no PR de release, com o crédito dos
dois.

O que fica deste PR é o que ele acrescenta de verdade: o teste.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@vercel

vercel Bot commented Sep 12, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
deskcomm-crm Ready Ready Preview Sep 12, 2026 11:42am UTC

Request Review

@ecc-tools

ecc-tools Bot commented Sep 12, 2026

Copy link
Copy Markdown
Contributor

ECC Tools / Security Evidence

Commit: 50f9c5e68febca7ac5f22377ee660b149640277d

Security evidence gate passed (success)

No security-sensitive scanner-evidence gap detected.

Mode: enforce

Scanned 2 changed file(s). No missing scanner-evidence signal was detected.

Check publication was denied or unavailable. An app owner must enable Checks: read and write, and the installation owner must approve the updated permission.

@ecc-tools

ecc-tools Bot commented Sep 12, 2026

Copy link
Copy Markdown
Contributor

ECC Tools / PR Risk Taxonomy

Commit: 50f9c5e68febca7ac5f22377ee660b149640277d

PR taxonomy clear (success)

Scanned 2 changed file(s). No taxonomy bucket signals were detected.

Scanned 2 changed file(s).

No PR taxonomy bucket signals were detected.

Check publication was denied or unavailable. An app owner must enable Checks: read and write, and the installation owner must approve the updated permission.

@ecc-tools

ecc-tools Bot commented Sep 12, 2026

Copy link
Copy Markdown
Contributor

ECC Tools / Reference Set Readiness

Commit: 50f9c5e68febca7ac5f22377ee660b149640277d

Reference set readiness gaps detected (neutral)

Reference evidence present for 0/7 areas (0%) across 2 changed file(s).

This check is based on files changed in this PR. Repository-level readiness is still reported by /ecc-tools analyze comments and generated manifests.

Area Status Evidence / Next Step
Deep analyzer corpus Missing Add analyzer fixture, golden, benchmark, or reference-set files that can catch analyzer regressions.
RAG/evaluator comparison Missing Add retrieval or evaluator reference-set comparison fixtures with expected ranking behavior.
PR salvage/review corpus Missing Add stale-PR, review-thread, reopen-flow, or salvage reference cases for queue cleanup automation.
Discussion triage corpus Missing Add public discussion triage fixtures, golden cases, or reference sets for informational, answered, and no-response classifications.
Harness compatibility Missing Add cross-harness, adapter-compliance, or harness-audit evidence for Claude, Codex, OpenCode, Zed, dmux, and agent surfaces.
Security evidence Missing Attach security evidence such as SBOMs, SARIF, audit reports, or AgentShield evidence packs.
CI failure-mode evidence Missing Add captured CI failure logs, dry-run fixtures, or troubleshooting docs for common workflow failure modes.

Check publication was denied or unavailable. An app owner must enable Checks: read and write, and the installation owner must approve the updated permission.

@ecc-tools

ecc-tools Bot commented Sep 12, 2026

Copy link
Copy Markdown
Contributor

ECC Tools / Hosted Promotion Readiness

Commit: 50f9c5e68febca7ac5f22377ee660b149640277d

Hosted promotion readiness passed (success)

No hosted promotion evidence gaps detected across 2 changed file(s); 0 corpus scenarios had matching evidence.

This check compares PR file changes against the evaluator/RAG promotion corpus in src/analyzers/fixtures/evaluator-rag-corpus.ts.
Hosted output scoring inspected 0 completed cached hosted job results.

No evaluator corpus scenarios matched this PR.

Check publication was denied or unavailable. An app owner must enable Checks: read and write, and the installation owner must approve the updated permission.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants