diff --git a/docs/postmortems/2026-09-18-github-token-401.md b/docs/postmortems/2026-09-18-github-token-401.md index dc089b17..219ad693 100644 --- a/docs/postmortems/2026-09-18-github-token-401.md +++ b/docs/postmortems/2026-09-18-github-token-401.md @@ -10,7 +10,7 @@ | Severidade | alta (quebra a ferramentaria local e o auto-merge de todos os PRs; o deploy de `main` dependia disso) | | Ambiente | dev (workstation) + CI (GitHub Actions) | | Issue(s) | #1169 (C201, `kind:defect` — fechada por este PR) | -| PR do fix | #1174 | +| PR do fix | #1175 | | Detectado por | log (sessão de agente c194, antes de 2026-09-18) e humano (2026-09-18) | ## Timeline @@ -21,7 +21,7 @@ | Detecção | antes de 2026-09-18 (log) / 2026-09-18 (humano) | Log `~/.local/state/teqo/agent-sessions/c194-…log:74`: `gh issue view` → `HTTP 401: Bad credentials`. Depois o humano reproduziu `pnpm issue next` → 401 | | Detecção (CI) | 2026-09-18T21:39:59Z | Primeira falha do safety net `ready-automerge` com 401 GraphQL (branch `fix/c193-missed-rename`); runs seguintes (`work/18`, `C191-…`, `fix/6`) falham igual — o secret `AUTOMERGE_PAT` está inválido. Sucessos até 20:43:58Z (`plan/c199-c200`) | | Correção do C201 | 2026-09-18T21:52:39Z | O rename perdido do C193 é corrigido de forma independente pelo PR #1171 (`c7d1fd29`), antes deste PR; o deploy run 35398929341 começa no push da `main`. O drive-by deste PR foi dispensado no rebase (trabalho duplicado) | -| Correção mergeada | 2026-09-18 | PR #1174 (#1169 é fechada na merge); auto-merge bloqueado até a rotação do `AUTOMERGE_PAT` — merge manual possível com o required check verde | +| Correção mergeada | 2026-09-18 | PR #1175 (#1169 é fechada na merge); auto-merge bloqueado até a rotação do `AUTOMERGE_PAT` — merge manual possível com o required check verde | | Deploy | 2026-09-18T21:52:42Z | run 35398929341 (push `c7d1fd29`) em andamento no fechamento deste post-mortem: `verify` full → staging automático → produção após approve humano | | Verificado em prod | não se aplica (bug local de ferramental) | — | @@ -64,7 +64,7 @@ Causa-raiz do C201 (registrada porque o fluxo a encontrou): C192 e C193 passaram - A dica funcionou ao vivo no próprio incidente: o log do safety net em 21:57 exibiu `GitHub GraphQL → 401: token rejeitado — GITHUB_TOKEN inválido/expirado…` - Diff sem segredos; `GITHUB_TOKEN=ghp_invalid_token pnpm issue next` sai 1 com a dica acionável; `env -u GITHUB_TOKEN bash -ic 'pnpm issue next'` imprime a Issue #1154 (read-only, confirmada ainda `ready`/unassigned) - C201: `pnpm typecheck` verde na `main` via #1171; deploy run 35398929341 em andamento (a confirmar) -- CI do PR #1174: a confirmar no merge; `ready-automerge` falha pelo secret expirado (item 4 acima) +- CI do PR #1175: a confirmar no merge; `ready-automerge` falha pelo secret expirado (item 4 acima) - Prod: não se aplica (bug local) ## Prevenção