Files
DeskcommCRM/tests
melgarafaelandClaude Opus 5.5 dd985ee3f5 fix(governance): guarda do plano exige a ponta da main e branch sem toque (#1900)
O sinal do outro lado (GITHEAD_* e tambem um MERGE_HEAD escrito a mao) e
forjavel por quem roda o commit. Com so "indice == outro lado", um commit
comum voltava plan/features.json a versao de um ancestral da main e apagava
features com exit 0 (medido nas duas rotas; a do MERGE_HEAD ja existia na
main). O validate-features ganha as condicoes 6 e 3 do freeze-invariants:
indice == origin/main:plan e HEAD:plan == merge-base:plan.

- casos negativos (d) no vitest para as duas rotas forjadas; sabotagem
  (hook do PR sem as condicoes) deixa os dois vermelhos
- M4 no teste de shell: commit comum com GITHEAD_<ponta> que edita o
  invariante a mao segue recusado
- merge-auto-commit-passa-pelos-guards entra no pnpm test:shell (nao rodava
  no CI)
- fragmento: a guarda citada era a do plano, nao a de migration

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-28 22:45:05 -03:00
..
…