Unifica as duas linhagens divergentes pós-cutover OPS71 numa história única
no Forgejo main. Forgejo-only: S10 (pixel Meta), C141 (perfis de permissão,
rebase sobre S10). GitHub-only: OPS71-OPS74 (infra GitHub Actions), S8/S9
re-home, S11 (feed Instagram + painel sync), C143 (demandas responsáveis).
Resolução de conflitos: migrations/index.ts registra as 5 (newsletter,
S10 pixel, C141, C143 responsibles, S11 sync status); demands.ts mantém
a regra C143 de leitura + eixo de edição C141; newsletter usa a versão S10
(pixel); importMap restaurado para o do GitHub (handler S3, classe OPS69);
CHANGELOG-AGENTS.md regenerado via changelog:build (46 entradas).
Gates: tsc, lint, format, knip, cycles, unit 2457, int 815, build verdes;
migrations aplicadas ao teqo_test.
O deploy compila no homeserver e acumulava build cache + tags locais
antigas no disco raiz (incidente 19/08: 45G de cache). Após o smoke:
docker builder prune -f + remoção das tags locais teqo-1313 exceto o
SHA em uso (best-effort, registry preserva o rollback).
Job deploy em ci.yml (runs-on host na workstation) streama
scripts/deploy-homeserver.sh para o homeserver via SSH: build dos stages
runner+migrator com secrets do teqo-1313.env, push no registry local,
migrate pelo serviço de maintenance antes do rollout, up + smoke. Zero
secrets novos no Forgejo; HEAD guard + flock; rollback automático com
backup do compose; runbook docs/ops/teqo-1313-deploy.md; invariantes
unit do script (bash -n + estrutura).