docs(postmortem): registra CI verde do PR #943 (run 34673571340)

This commit is contained in:
Francisco Solla 2026-09-12 01:52:58 -03:00
parent aa85aa12b9
commit ff0f5ff1cf
2 changed files with 3 additions and 3 deletions

View file

@ -1 +1 @@
**Deploy verify destravado — fixture B196 de atividades deriva a data de hoje (2026-09-12):** o verify do deploy manual de 2026-09-11 (run 34652323456, main `3aad110e`) falhou nas 3 tentativas do e2e `campaignMunicipalities.e2e.spec.ts:1492` ("chassis elsewhere … atividades"), com `Expected: > 0` / `Received: 0` em `:1529`, e o job `deploy homeserver (teqo-1313)` ficou skipped — o main não foi para produção nesse dispatch (os outros 198 e2e passaram; 6 flakes de latência passaram no retry). Causa: a fixture B196 (commit `02abd7de`, 2026-08-11) criava 5 atividades com `startAt` fixo em `2026-09-01T13:00:00.000Z`; a aba default `proximos` filtra `status = confirmado AND startAt >= now` (`src/utilities/activityUi.ts:408-409,442-444`; `now = new Date()` injetado em `src/app/(campaign)/campanha/(app)/atividades/page.tsx:57,65`), então a partir de 02/09 a lista virou empty state, o scrollport perdeu overflow e o assert zerou — o deploy de 27/08 (run 33074305879) e o PR CI de agosto passaram porque a data ainda era futura. Fix (PR #943, commit `e846c916`): `startAt` derivado de hoje +7 dias no tempo civil da Bahia (`civilDatePlusDays(formatBahiaCivilDate(new Date()), 7)` + `parseBahiaDateTimeInput`, padrão de `tests/e2e/campaignActivity.e2e.spec.ts:136-137`) e poll do scrollport com `{ timeout: 30_000 }` (classe de latência B196 sob 4 workers), mais guard ESLint `no-restricted-syntax` escopado a `tests/e2e/**/*.{ts,tsx}` que bane ISO literal em propriedades `start*`/`end*`/`date*`, pinado por `tests/unit/eslintConventions.unit.spec.ts` (13 testes, RED sem a regra). Verificação: RED local reproduzido (mesma linha, `Received: 0`) e pelo verificador independente via stash, GREEN 3 passed (2 setups + alvo); `pnpm gate:fast` verde (lint + typecheck + 2687 unit), `pnpm lint` completo verde; spec completo 27 passed / 2 failed (B176, flake conhecido da Issue #882, e B200, determinístico só em dev local, aprovado no verify real em prod-mode). Sem Issue própria — o registro é o post-mortem (`docs/postmortems/2026-09-12-deploy-verify-b196-data-vencida.md`). CI do PR #943 em execução no momento da escrita e prod pendente (deploy manual do humano após o merge).
**Deploy verify destravado — fixture B196 de atividades deriva a data de hoje (2026-09-12):** o verify do deploy manual de 2026-09-11 (run 34652323456, main `3aad110e`) falhou nas 3 tentativas do e2e `campaignMunicipalities.e2e.spec.ts:1492` ("chassis elsewhere … atividades"), com `Expected: > 0` / `Received: 0` em `:1529`, e o job `deploy homeserver (teqo-1313)` ficou skipped — o main não foi para produção nesse dispatch (os outros 198 e2e passaram; 6 flakes de latência passaram no retry). Causa: a fixture B196 (commit `02abd7de`, 2026-08-11) criava 5 atividades com `startAt` fixo em `2026-09-01T13:00:00.000Z`; a aba default `proximos` filtra `status = confirmado AND startAt >= now` (`src/utilities/activityUi.ts:408-409,442-444`; `now = new Date()` injetado em `src/app/(campaign)/campanha/(app)/atividades/page.tsx:57,65`), então a partir de 02/09 a lista virou empty state, o scrollport perdeu overflow e o assert zerou — o deploy de 27/08 (run 33074305879) e o PR CI de agosto passaram porque a data ainda era futura. Fix (PR #943, commit `e846c916`): `startAt` derivado de hoje +7 dias no tempo civil da Bahia (`civilDatePlusDays(formatBahiaCivilDate(new Date()), 7)` + `parseBahiaDateTimeInput`, padrão de `tests/e2e/campaignActivity.e2e.spec.ts:136-137`) e poll do scrollport com `{ timeout: 30_000 }` (classe de latência B196 sob 4 workers), mais guard ESLint `no-restricted-syntax` escopado a `tests/e2e/**/*.{ts,tsx}` que bane ISO literal em propriedades `start*`/`end*`/`date*`, pinado por `tests/unit/eslintConventions.unit.spec.ts` (13 testes, RED sem a regra). Verificação: RED local reproduzido (mesma linha, `Received: 0`) e pelo verificador independente via stash, GREEN 3 passed (2 setups + alvo); `pnpm gate:fast` verde (lint + typecheck + 2687 unit), `pnpm lint` completo verde; spec completo 27 passed / 2 failed (B176, flake conhecido da Issue #882, e B200, determinístico só em dev local, aprovado no verify real em prod-mode). Sem Issue própria — o registro é o post-mortem (`docs/postmortems/2026-09-12-deploy-verify-b196-data-vencida.md`). CI do PR #943 verde (run 34673571340) e prod pendente (deploy manual do humano após o merge).

View file

@ -19,7 +19,7 @@
| ------------------ | -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Início provável | 2026-08-11 | commit `02abd7de` (B196) cria a fixture com `startAt: '2026-09-01T13:00:00.000Z'` hardcoded; o PR CI de agosto era verde porque 01/09 ainda era futuro — a data venceu em 02/09/2026 |
| Detecção | 2026-09-11 22:04–22:24 UTC | run 34652323456 do `deploy.yml` (job `verify`, main `3aad110e`): o E2E `tests/e2e/campaignMunicipalities.e2e.spec.ts:1492` falha nas 3 tentativas (11.8s / 19.4s / 18.4s) em `:1529` (`Expected: > 0`, `Received: 0`) e o job `deploy homeserver (teqo-1313)` fica skipped — o main não vai para produção nesse dispatch |
| Correção mergeada | 2026-09-12 | commit `e846c916` no PR #943 — CI em execução; merge pendente no momento da escrita |
| Correção mergeada | 2026-09-12 | commit `e846c916` no PR #943 — CI verde (run 34673571340); merge pelo auto-merge nativo após este documento |
| Deploy | pendente | dispatch manual do `deploy.yml` pelo humano após o merge |
| Verificado em prod | pendente | confirmação do humano após o deploy |
@ -53,7 +53,7 @@ Resolve a causa: a fixture deixa de depender de uma data absoluta e o guard pega
- Teste de regressão: `tests/e2e/campaignMunicipalities.e2e.spec.ts:1492` "chassis elsewhere… (atividades)" — falha sem o fix (RED local em 2026-09-12, mesma linha `:1529`, `Received: 0`; reproduzido também pelo verificador independente via stash) e passa com o fix (GREEN 3 passed = 2 setups + alvo)
- Suíte: `pnpm gate:fast` verde (lint + typecheck + 2687 unit); `pnpm lint` completo verde (zero falso positivo da regra nova); spec completo `campaignMunicipalities.e2e.spec.ts` 27 passed / 2 failed — B176 (flake conhecido, Issue #882) e B200 (falha determinística só em dev local, `87 > 48`, reproduzida também no estado pré-fix e aprovada no verify real de 2026-09-11 em prod-mode)
- CI: em execução no PR #943
- CI: verde no PR #943 (run 34673571340, job `checks`)
- Prod: pendente — deploy manual pendente de dispatch do humano após o merge; confirmação do humano pendente
## Prevenção