Skip to content

fix(crash): carteira cripto injetada não é bug do jogo — window.ethereum para de abrir issue (#403) - #406

Open
nunreasonable wants to merge 24 commits into
corosolto:mainfrom
nunreasonable:fix/403-carteira-cripto-injetada
Open

fix(crash): carteira cripto injetada não é bug do jogo — window.ethereum para de abrir issue (#403)#406
nunreasonable wants to merge 24 commits into
corosolto:mainfrom
nunreasonable:fix/403-carteira-cripto-injetada

Conversation

@nunreasonable

Copy link
Copy Markdown
Contributor

O que é

A #403 e a #404 chegaram como classe codigo, alpha.172, com origem e stack apontando para a própria página:

TypeError: undefined is not an object (evaluating 'window.ethereum.selectedAddress = undefined')   #403, ab1ad30e
TypeError: undefined is not an object (evaluating 'window.ethereum.emit')                          #404, e32cd1e4
Origem: https://www.csbrasil.online/:1:16
Stack:  global code@https://www.csbrasil.online/:1:16

Não é defeito do jogo. É extensão de carteira cripto injetando script inline no documento.

A prova, tripla

  1. window.ethereum, selectedAddress e qualquer identificador web3 não existem em nenhum arquivo do repositório, e git log --all -S não devolve um único commit para nenhum deles. O mint-assets.json é o registro do gerador de modelos 3D da mint.gg, não tem web3.
  2. O fingerprint publicado reproduz exatamente crashFingerprint('error', <mensagem>, 'https://www.csbrasil.online/:1:16') — ou seja o e.filename é a própria página, lineno=1, colno=16.
  3. O único frame é global code@: nenhum arquivo do jogo aparece na pilha.

O próprio index.astro já dizia isso em comentário desde antes: "extensões de carteira injetam vários".

Causa

O isExternalCrash inocenta por origem, e o Safari reporta script de extensão injetado no mundo da página com o filename da página. O atalho

if (sourceOrigin === ownOrigin) return false;

decidia "é nosso" antes de qualquer outra prova; nenhuma das regex seguintes mordia e o classifyCrash caía no return 'codigo' final, que escala e abre issue.

As irmãs #138 e #166 são a mesma família, mas traziam chrome-extension:// e já caíam na EXTENSION_RE. O que era novo aqui é a forma sem esquema de extensão em campo nenhum.

Correção — duas camadas espelhadas (mesmo remédio das BUG-51/72/73)

  • src/lib/error-provenance.mjsCARTEIRA_RE e o ramo em isExternalCrash, na mesma posição e pelo mesmo motivo da VENDOR_RE: antes do atalho same-origin, porque a carteira roda no próprio domínio mas o código é de terceiro. A linha continua gravada no js_error; some o disparo automático, não o dado.
  • src/pages/index.astro — a mesma redação em origemDoJogo. Nenhuma cota nova: cai no balde do TETO_EXTERNO que a BUG-51 já abriu. E com interna === false o erro deixa de virar erroDoBoot/lancamento.fail — uma carteira que estoura durante o boot podia ser acusada de ter derrubado o carregamento.

O corte é estreito: exige o nome do global injetado, nunca a forma da mensagem. Cobre a família de carteiras e não uma regex por incidente — a crítica que a BUG-72 fez ao padrão antigo.

Custo declarado, medido na população real

Reclassificando as 90 issues crash-auto do repositório com o helper de antes e o de depois:

transição issues
codigo -> codigo 51
externo -> externo 25
recuperavel -> recuperavel 12
codigo -> externo 2 — a #403 e a #404

Nenhuma outra issue deixa de abrir.

Régua

EP16 em tools/eval/error-provenance-check.mjs (npm run eval:error-origin, já no check:fast e no check:deploynenhum passo novo no portão):

  • classifica os payloads reais das duas issues, e confere os fingerprints publicados contra a receita (fixture "arrumada" deixa de bater e acusa);
  • exige que 5 mensagens vizinhas continuem codigo (a palavra solta num texto nosso, crash dentro de arquivo do jogo, e o crash do script inline da própria página);
  • executa o origemDoJogo recortado do fonte — regex de fiação sozinha aprovaria function origemDoJogo(){ return true; };
  • invariante de honestidade: varre src/ e public/js/ e fica vermelha no dia em que o jogo tiver um window.ethereum de verdade, para o corte não virar mordaça silenciosa sobre código nosso.

Mutantes novos — sem-carteira, carteira-ampla, sem-carteira-cliente — todos acendendo EP16. Cláusulas 15 -> 16, matriz de mutação 42/42.

BUG-75 no KNOWN-BUGS.md.

Verificação

  • npm run check:deploy30/30
  • npm run check:fast56/57; a única reprovação é audio:check, e ela reprova idêntico na árvore limpa de origin/main (os assets de áudio são gitignored e não estão nesta máquina)
  • matriz de mutação da régua — 42/42 mordem

NÃO VERIFICADO: não há browser nesta máquina, então a reprodução com uma extensão de carteira de verdade não foi feita — a régua mede a classificação, não a injeção. A tabela js_error do Supabase não foi consultada.

Closes #403
Closes #404

…eum para de abrir issue (corosolto#403)

A corosolto#403 e a corosolto#404 chegaram como classe `codigo`, alpha.172, com origem e stack apontando
para a PRÓPRIA PÁGINA:

    TypeError: undefined is not an object (evaluating 'window.ethereum.selectedAddress = undefined')
    TypeError: undefined is not an object (evaluating 'window.ethereum.emit')
    Origem: https://www.csbrasil.online/:1:16
    Stack:  global code@https://www.csbrasil.online/:1:16

Não é defeito do jogo, e a prova é tripla. `window.ethereum`, `selectedAddress` e qualquer
identificador web3 NÃO existem em nenhum arquivo do repositório, e `git log --all -S` não
devolve um único commit para nenhum dos dois (o `mint-assets.json` é o registro do gerador
de modelos 3D da mint.gg, não tem web3). O fingerprint publicado reproduz EXATAMENTE
`crashFingerprint('error', <mensagem>, 'https://www.csbrasil.online/:1:16')` — `ab1ad30e`
na corosolto#403 e `e32cd1e4` na corosolto#404 —, ou seja o `e.filename` é a própria página, `lineno=1`,
`colno=16`. E o único frame é `global code@`: nenhum arquivo do jogo aparece na pilha.

É extensão de carteira cripto injetando script INLINE no documento. O `index.astro` já
dizia isso em comentário desde antes: "extensões de carteira injetam vários".

Causa: o `isExternalCrash` inocenta por ORIGEM, e o Safari reporta script de extensão
injetado no mundo da página com o filename da página. O atalho `if (sourceOrigin ===
ownOrigin) return false;` decidia "é nosso" antes de qualquer outra prova, nenhuma das
regex seguintes mordia (OPAQUE_RE, AMBIENTE_RE, CACHE_SPLIT_RE, RECOVERABLE_RE,
MEDIA_ABORT_RE) e o `classifyCrash` caía no `return 'codigo'` final, que escala.

As irmãs corosolto#138 ("Cannot redefine property: ethereum") e corosolto#166 ("Failed to connect to
MetaMask") são a MESMA família, mas traziam `chrome-extension://` no source/stack e já
caíam na EXTENSION_RE — seguem `externo`, e a régua as fixa como fixture. O que era novo
em corosolto#403/corosolto#404 é a forma sem esquema de extensão em campo nenhum.

Correção em duas camadas espelhadas, o mesmo remédio das BUG-51/72/73:

- src/lib/error-provenance.mjs — CARTEIRA_RE e o ramo em `isExternalCrash`, na MESMA
  posição e pelo mesmo motivo da VENDOR_RE: antes do atalho same-origin, porque a carteira
  roda no próprio domínio mas o código é de terceiro. A linha continua gravada no
  `js_error`; some o disparo automático, não o dado.
- src/pages/index.astro — a MESMA redação em `origemDoJogo`. Nenhuma cota nova: carteira
  cai no balde do TETO_EXTERNO que a BUG-51 já abriu (ao contrário do TETO_MIDIA, que a
  BUG-73 precisou criar). Com `interna === false` o erro também deixa de virar `erroDoBoot`
  e `lancamento.fail` — uma carteira que estoura durante o boot podia ser acusada de ter
  derrubado o carregamento do jogo.

O corte é ESTREITO: exige o NOME do global injetado (`window.`/`globalThis.`/`self.` +
ethereum|solana|tronWeb|…), nunca a forma da mensagem. Cobre a FAMÍLIA de carteiras e não
uma regex por incidente — que é a crítica que a BUG-72 fez ao padrão antigo.

Medido (helper e `origemDoJogo` reais, extraídos do fonte, sem browser):

  corosolto#403/corosolto#404 classificadas externo ............ 0/2 -> 2/2
  corosolto#403/corosolto#404 abrem issue ...................... 2/2 -> 0/2
  cliente inocenta a carteira ................ 0/5 -> 5/5
  vizinhas que continuam `codigo` ............ 5/5 -> 5/5 (inalterado, de propósito)

Custo declarado, na população real e não estimado: reclassificando as 90 issues
`crash-auto` do repositório com o helper de antes e o de depois, exatamente 2 mudam de
classe — a corosolto#403 e a corosolto#404. As outras 88 ficam idênticas (51 `codigo`, 25 `externo`, 12
`recuperavel`). NENHUMA outra issue deixa de abrir.

Régua: EP16 em tools/eval/error-provenance-check.mjs (npm run eval:error-origin, já no
check:fast e no check:deploy — nenhum passo novo no portão). Classifica os payloads REAIS
das duas issues, confere os fingerprints publicados contra a receita (fixture "arrumada"
deixa de bater e acusa), exige que 5 mensagens vizinhas continuem `codigo` e EXECUTA o
`origemDoJogo` recortado do fonte — regex de fiação sozinha aprovaria
`function origemDoJogo(){ return true; }`. Carrega ainda uma INVARIANTE DE HONESTIDADE:
varre `src/` e `public/js/` e fica VERMELHA no dia em que o jogo tiver um `window.ethereum`
de verdade, para o corte não virar mordaça silenciosa sobre código nosso. Mutantes novos:
sem-carteira, carteira-ampla e sem-carteira-cliente, todos acendendo EP16. Cláusulas
15->16, matriz de mutação 42/42.

BUG-75 no KNOWN-BUGS.md. O bloco gerado de autoria do colaborar.md (pt e en) foi
regenerado com `npm run docs` porque este commit muda o `git shortlog` da branch - mesmo
passo que o corosolto#382 e o corosolto#389 deram, e sem ele o eval:docsautoria não tem como medir.

NÃO VERIFICADO: não há browser nesta máquina, então a reprodução com uma extensão de
carteira de verdade não foi feita — a régua mede a CLASSIFICAÇÃO, não a injeção. A tabela
`js_error` do Supabase não foi consultada. No portão local, `audio:check` reprova por falta
dos assets de áudio (gitignored, ausentes nesta máquina): reprova IDÊNTICO na árvore limpa
de origin/main, antes de qualquer mudança deste commit. Os outros 56 passos passam, e o check:deploy fecha 30/30.

Closes corosolto#403
Closes corosolto#404

Signed-off-by: nunreasonable <rafaelpasquarella@gmail.com>
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Agent: Claude Code (Opus 5)
@vercel

vercel Bot commented Aug 21, 2026

Copy link
Copy Markdown

@nunreasonable is attempting to deploy a commit to the rubenmarcus' projects Team on Vercel.

A member of the Team first needs to authorize it.

@github-actions

Copy link
Copy Markdown
Contributor

🤖 cs-brasil-ai-bot: candidato a preview; um mantenedor deve revisar o SHA e aplicar o label preview-autorizado.

@csbrasil-BOT csbrasil-BOT added needs-staging Mudança precisa validação integrada em staging target:main PR apontando para a branch main labels Aug 21, 2026
@csbrasil-BOT

csbrasil-BOT commented Aug 21, 2026

Copy link
Copy Markdown
Collaborator

csbrasil-bot classification

Note

@nunreasonable abriu 5 arquivo(s) · +90 −2, base main.

O que mudou

área arquivos + amostra
📚 docs 3 +80 −2 KNOWN-BUGS.md, colaborar.md, colaborar.md
⚙️ backend 1 +6 −0 error-provenance.mjs
🌐 site 1 +4 −0 index.astro

Labels

label por quê
needs-staging mudança de runtime/UI — valida integrado no staging antes do merge
target:main vai direto pra main, sem fila de integração

@estraga-codigo estraga-codigo left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Palhaço Mal

Palhaço Mal · revisor da casa · 🤡

mapa da mudança

  • docs (3): KNOWN-BUGS.md, colaborar.md, colaborar.md
  • backend (1): error-provenance.mjs
  • site (1): index.astro
  • arnês (1): error-provenance-check.mjs

Tip

Risco BAIXO · nota 10/10 ▓▓▓▓▓▓▓▓▓▓

limpo pelos critérios das minhas ações desta rodada

Revisão de bot — fio não resolvido TRAVA o merge (a main exige conversa resolvida). Resolve ou refuta.


maquiagem de verde por cima de vermelho eu desenmascaro no primeiro golpe de vista 🤡

@estraga-codigo

Copy link
Copy Markdown
Collaborator

Esbirro

Esbirro · plantão da produção · 🕵️

check vermelho parado neste PR

Caution

Não sei classificar este vermelho. Segue o que o CI cuspiu — palpite de bot sobre bug alheio só atrapalha.

o quê valor
head 5e139af8ffc7
checks vermelhos 2
classe outra
hora do plantão 2026-08-21T21:51:49.161Z

Vermelho:

classify (https://github.com/corosolto/client/actions/runs/32529792806/job/96919371710)
Vercel (https://vercel.com/git/authorize?team=rubenmarcus'%20projects&slug=rubenmarcus-projects&teamId=team_4nZdRW8viHMCXpdixaCtzZ7z&type=github&job=%7B%22headInfo%22%3A%7B%22sha%22%3A%225e139af8ffc79cc6f8557ede35c35bd0476815e1%22%7D%2C%22id%22%3A%22Qmedcv6sDG1BiMSdWd1tFF9y4Aq9Z3LygyRhiUq5LvLRkJ%22%2C%22org%22%3A%22corosolto%22%2C%22prId%22%3A406%2C%22repo%22%3A%22client%22%7D)

Rabo do log:

2026-08-21T21:43:06.9684041Z ##[group]Run if [ -z "$GH_TOKEN" ]; then
2026-08-21T21:43:06.9684622Z if [ -z "$GH_TOKEN" ]; then
2026-08-21T21:43:06.9685697Z   echo "::error::CSBRASIL_BOT_TOKEN ausente — crie o secret (PAT da conta csbrasil-bot, scopes: repo/workflow). Sem ele o classify posta como github-actions[bot] ou não posta."
2026-08-21T21:43:06.9686736Z   exit 1
2026-08-21T21:43:06.9687081Z fi
2026-08-21T21:43:06.9722998Z shell: /usr/bin/bash -e {0}
2026-08-21T21:43:06.9723615Z env:
2026-08-21T21:43:06.9723941Z   GH_TOKEN:
2026-08-21T21:43:06.9724277Z   PR_NUMBER: 406
2026-08-21T21:43:06.9724639Z   DESIRED_BASE_BRANCH: staging
2026-08-21T21:43:06.9725031Z ##[endgroup]
2026-08-21T21:43:06.9856148Z ##[error]CSBRASIL_BOT_TOKEN ausente — crie o secret (PAT da conta csbrasil-bot, scopes: repo/workflow). Sem ele o classify posta como github-actions[bot] ou não posta.
2026-08-21T21:43:06.9866945Z ##[error]Process completed with exit code 1.


de plantão: vi, registrei, hora no relógio 🕵️

@csbrasil-BOT

Copy link
Copy Markdown
Collaborator

🤖 autofix: o conserto encostou em arquivo fora da lista de permissão, então não commitei nada. Rode npm run docs && node tools/gen-arch.mjs e confira o que mudou.

Agent: csbrasil-bot (autofix)

Signed-off-by: csbrasil-bot <csbrasil-bot@users.noreply.github.com>
Rodado pelo autofix: só arquivo gerado, conferido pela lista de permissão.

Signed-off-by: csbrasil-bot <csbrasil-bot@users.noreply.github.com>
@csbrasil-BOT

Copy link
Copy Markdown
Collaborator

🤖 autofix: regenerei os blocos derivados e empurrei o commit. O PR não precisa de mais nada disso.

Agent: csbrasil-bot (autofix)

Signed-off-by: csbrasil-bot <csbrasil-bot@users.noreply.github.com>
Rodado pelo autofix: só arquivo gerado, conferido pela lista de permissão.

Signed-off-by: csbrasil-bot <csbrasil-bot@users.noreply.github.com>
@csbrasil-BOT

Copy link
Copy Markdown
Collaborator

🤖 autofix: regenerei os blocos derivados e empurrei o commit. O PR não precisa de mais nada disso.

Agent: csbrasil-bot (autofix)

Signed-off-by: csbrasil-bot <csbrasil-bot@users.noreply.github.com>
Rodado pelo autofix: só arquivo gerado, conferido pela lista de permissão.

Signed-off-by: csbrasil-bot <csbrasil-bot@users.noreply.github.com>
@csbrasil-BOT

Copy link
Copy Markdown
Collaborator

🤖 autofix: regenerei os blocos derivados e empurrei o commit. O PR não precisa de mais nada disso.

Agent: csbrasil-bot (autofix)

Signed-off-by: csbrasil-bot <csbrasil-bot@users.noreply.github.com>
Rodado pelo autofix: só arquivo gerado, conferido pela lista de permissão.

Signed-off-by: csbrasil-bot <csbrasil-bot@users.noreply.github.com>
@csbrasil-BOT

Copy link
Copy Markdown
Collaborator

🤖 autofix: regenerei os blocos derivados e empurrei o commit. O PR não precisa de mais nada disso.

1 similar comment
@csbrasil-BOT

Copy link
Copy Markdown
Collaborator

🤖 autofix: regenerei os blocos derivados e empurrei o commit. O PR não precisa de mais nada disso.

@estraga-codigo

Copy link
Copy Markdown
Collaborator

Esbirro

Esbirro · plantão da produção · 🕵️

check vermelho parado neste PR

Caution

Não sei classificar este vermelho. Segue o que o CI cuspiu — palpite de bot sobre bug alheio só atrapalha.

o quê valor
head cc9d75bb3e4c
checks vermelhos 3
classe outra
hora do plantão 2026-08-22T04:23:32.452Z

Vermelho:

avaliar (https://github.com/corosolto/client/actions/runs/32551419895/job/96978690414)
dco (https://github.com/corosolto/client/actions/runs/32551421913/job/96978730350)
Vercel (https://vercel.com/git/authorize?team=rubenmarcus'%20projects&slug=rubenmarcus-projects&teamId=team_4nZdRW8viHMCXpdixaCtzZ7z&type=github&job=%7B%22headInfo%22%3A%7B%22sha%22%3A%22cc9d75bb3e4c1bc1dfb6fed6a353db265e50790d%22%7D%2C%22id%22%3A%22QmcXDs6ZXihvXXxZWGrvMCEaVJcdmoDoh86mir3um8exQX%22%2C%22org%22%3A%22corosolto%22%2C%22prId%22%3A406%2C%22repo%22%3A%22client%22%7D)

Rabo do log:

2026-08-22T04:20:06.3829290Z ##[group]Run python3 scripts/ci/ensure_labels.py preview-autorizado
2026-08-22T04:20:06.3831719Z python3 scripts/ci/ensure_labels.py preview-autorizado
2026-08-22T04:20:06.3871653Z shell: /usr/bin/bash -e {0}
2026-08-22T04:20:06.3872969Z env:
2026-08-22T04:20:06.3886258Z   GH_TOKEN: ***
2026-08-22T04:20:06.3887433Z ##[endgroup]
2026-08-22T04:20:06.4093818Z python3: can't open file '/home/runner/work/client/client/scripts/ci/ensure_labels.py': [Errno 2] No such file or directory
2026-08-22T04:20:06.4138773Z ##[error]Process completed with exit code 2.


nada fora do normal no meu turno 🕵️

@estraga-codigo estraga-codigo left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Palhaço Mal

Palhaço Mal · revisor da casa · 🤡

mapa da mudança

  • docs (3): KNOWN-BUGS.md, colaborar.md, colaborar.md
  • backend (1): error-provenance.mjs
  • site (1): index.astro

Tip

Risco BAIXO · nota 10/10 ▓▓▓▓▓▓▓▓▓▓

pente fino passado: nenhum achado que eu defenda em voz alta

Revisão de bot — fio não resolvido TRAVA o merge (a main exige conversa resolvida). Resolve ou refuta.


maquiagem de verde por cima de vermelho eu desenmascaro no primeiro golpe de vista 🤡

rubenmarcus added a commit that referenced this pull request Aug 22, 2026
Dois defeitos apareceram no PRIMEIRO disparo real da automação, e os dois eram
meus:

1. O commit de regeneração do autofix não levava o trailer `Agent:`. O
   agente_check cobra esse trailer de TODO commit do PR, então o bot consertava a
   doc e reprovava o mesmo PR no passo seguinte. Atingiu #400, #405, #406, #365,
   #372, #373 e #375 de uma vez.

2. O job `avaliar` do preview-bot rodava `python3 scripts/ci/ensure_labels.py` sem
   nunca ter feito checkout - "No such file or directory". O passo era resto do
   desenho antigo: o preview por etiqueta morreu quando ele virou build-sem-segredo
   + deploy-sem-código, então a etiqueta não é mais necessária e o passo saiu.

A AF7 guarda o primeiro: todo `git commit` do bot tem de levar `Agent:` e
`Signed-off-by:`, que são exatamente os trailers que o CI cobra de gente. Bot que
não cumpre a própria régua da casa não ajuda ninguém. O mutante
`commit-sem-trailer` remove o Agent e acende.

Agent: Claude Opus 5 (Claude Code)

Signed-off-by: rubenmarcus <rubenmarcus.dev@gmail.com>
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
Agent: csbrasil-bot (autofix)

Signed-off-by: csbrasil-bot <csbrasil-bot@users.noreply.github.com>
@csbrasil-BOT

Copy link
Copy Markdown
Collaborator

🤖 autofix: regenerei os blocos derivados e empurrei o commit. O PR não precisa de mais nada disso.

@csbrasil-BOT

Copy link
Copy Markdown
Collaborator

🤖 autofix: regenerei os blocos derivados e empurrei o commit. O PR não precisa de mais nada disso.

@github-actions

Copy link
Copy Markdown
Contributor

🤖 cs-brasil-ai-bot: candidato a preview; um mantenedor deve revisar o SHA e aplicar o label preview-autorizado.

@csbrasil-BOT

Copy link
Copy Markdown
Collaborator

🤖 autofix: regenerei os blocos derivados e empurrei o commit. O PR não precisa de mais nada disso.

@github-actions

Copy link
Copy Markdown
Contributor

🤖 preview no ar → https://csbrasil-28aji5mqv-rubenmarcus-projects.vercel.app

@estraga-codigo estraga-codigo left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Palhaço Mal

Palhaço Mal · revisor da casa · 🤡

mapa da mudança

  • docs (3): KNOWN-BUGS.md, colaborar.md, colaborar.md
  • backend (1): error-provenance.mjs
  • site (1): index.astro

Tip

Risco BAIXO · nota 10/10 ▓▓▓▓▓▓▓▓▓▓

pente fino passado: nenhum achado que eu defenda em voz alta

Revisão de bot — fio não resolvido TRAVA o merge (a main exige conversa resolvida). Resolve ou refuta.


todo bug confessa no diff, eu só faço o interrogatório 🤡

@estraga-codigo

Copy link
Copy Markdown
Collaborator

Esbirro

Esbirro · plantão da produção · 🕵️

check vermelho parado neste PR

Caution

Não sei classificar este vermelho. Segue o que o CI cuspiu — palpite de bot sobre bug alheio só atrapalha.

o quê valor
head 6796ca7ca453
checks vermelhos 2
classe outra
hora do plantão 2026-08-22T21:45:43.834Z

Vermelho:

dco (https://github.com/corosolto/client/actions/runs/32599941613/job/97096600333)
Vercel (https://vercel.com/git/authorize?team=rubenmarcus'%20projects&slug=rubenmarcus-projects&teamId=team_4nZdRW8viHMCXpdixaCtzZ7z&type=github&job=%7B%22headInfo%22%3A%7B%22sha%22%3A%226796ca7ca45323fe70581c2cdd032d601759d408%22%7D%2C%22id%22%3A%22QmZ3bNrEMYNNCSePKpqcNABj4SZRf8EubGpYz1raHHXHrp%22%2C%22org%22%3A%22corosolto%22%2C%22prId%22%3A406%2C%22repo%22%3A%22client%22%7D)

Rabo do log:

2026-08-22T21:34:10.3465487Z ##[group]Run printf '{"baseRefOid":"%s","headRefOid":"%s"}' \
2026-08-22T21:34:10.3465951Z printf '{"baseRefOid":"%s","headRefOid":"%s"}' \
2026-08-22T21:34:10.3466326Z   "a84d5458ae3b0fc591f3de0c5546f123fcf00dd7" \
2026-08-22T21:34:10.3466739Z   "6796ca7ca45323fe70581c2cdd032d601759d408" > /tmp/dco.json
2026-08-22T21:34:10.3467164Z python3 scripts/ci/dco_check.py < /tmp/dco.json
2026-08-22T21:34:10.3506882Z shell: /usr/bin/bash -e {0}
2026-08-22T21:34:10.3507152Z env:
2026-08-22T21:34:10.3507734Z   pythonLocation: /opt/hostedtoolcache/Python/3.13.15/x64
2026-08-22T21:34:10.3508209Z   PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.13.15/x64/lib/pkgconfig
2026-08-22T21:34:10.3508643Z   Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.13.15/x64
2026-08-22T21:34:10.3509033Z   Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.13.15/x64
2026-08-22T21:34:10.3509424Z   Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.13.15/x64
2026-08-22T21:34:10.3509822Z   LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.13.15/x64/lib
2026-08-22T21:34:10.3510193Z ##[endgroup]
2026-08-22T21:34:10.4420513Z {"ok": false, "missing": ["b594bc62b062512e58c0a52b93d0c4002eb7f61b"]}
2026-08-22T21:34:10.4482090Z ##[error]Process completed with exit code 1.


de plantão: vi, registrei, hora no relógio 🕵️

Agent: csbrasil-bot (autofix)

Signed-off-by: csbrasil-bot <csbrasil-bot@users.noreply.github.com>
@csbrasil-BOT

Copy link
Copy Markdown
Collaborator

🤖 autofix: regenerei os blocos derivados e empurrei o commit. O PR não precisa de mais nada disso.

@github-actions

Copy link
Copy Markdown
Contributor

🤖 cs-brasil-ai-bot: candidato a preview; um mantenedor deve revisar o SHA e aplicar o label preview-autorizado.

@csbrasil-BOT

Copy link
Copy Markdown
Collaborator

🤖 autofix: regenerei os blocos derivados e empurrei o commit. O PR não precisa de mais nada disso.

Agent: csbrasil-bot (autofix)

Signed-off-by: csbrasil-bot <csbrasil-bot@users.noreply.github.com>
@csbrasil-BOT

Copy link
Copy Markdown
Collaborator

🤖 autofix: regenerei os blocos derivados e empurrei o commit. O PR não precisa de mais nada disso.

@github-actions

Copy link
Copy Markdown
Contributor

🤖 cs-brasil-ai-bot: candidato a preview; um mantenedor deve revisar o SHA e aplicar o label preview-autorizado.

@csbrasil-BOT

Copy link
Copy Markdown
Collaborator

🤖 autofix: regenerei os blocos derivados e empurrei o commit. O PR não precisa de mais nada disso.

@github-actions

Copy link
Copy Markdown
Contributor

🤖 preview no ar → https://csbrasil-88h0wtay2-rubenmarcus-projects.vercel.app

@github-actions

Copy link
Copy Markdown
Contributor

🤖 preview no ar → https://csbrasil-qr16mrnfl-rubenmarcus-projects.vercel.app

@estraga-codigo estraga-codigo left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Palhaço Mal

Palhaço Mal · revisor da casa · 🤡

mapa da mudança

  • docs (3): KNOWN-BUGS.md, colaborar.md, colaborar.md
  • backend (1): error-provenance.mjs
  • site (1): index.astro

Tip

Risco BAIXO · nota 10/10 ▓▓▓▓▓▓▓▓▓▓

limpo pelos critérios das minhas ações desta rodada

Revisão de bot — fio não resolvido TRAVA o merge (a main exige conversa resolvida). Resolve ou refuta.


maquiagem de verde por cima de vermelho eu desenmascaro no primeiro golpe de vista 🤡

@estraga-codigo

Copy link
Copy Markdown
Collaborator

Esbirro

Esbirro · plantão da produção · 🕵️

check vermelho parado neste PR

Caution

Não sei classificar este vermelho. Segue o que o CI cuspiu — palpite de bot sobre bug alheio só atrapalha.

o quê valor
head 7c6ef37ffc9f
checks vermelhos 2
classe outra
hora do plantão 2026-08-23T22:30:17.095Z

Vermelho:

dco (https://github.com/corosolto/client/actions/runs/32670358326/job/97270210226)
Vercel (https://vercel.com/git/authorize?team=rubenmarcus'%20projects&slug=rubenmarcus-projects&teamId=team_4nZdRW8viHMCXpdixaCtzZ7z&type=github&job=%7B%22headInfo%22%3A%7B%22sha%22%3A%227c6ef37ffc9fb8c514ef8cd876b76abcb2618a79%22%7D%2C%22id%22%3A%22QmZu2LaCmCnadshisUMv3SYZTQFYCwkDZSoCANFgxn7uvE%22%2C%22org%22%3A%22corosolto%22%2C%22prId%22%3A406%2C%22repo%22%3A%22client%22%7D)

Rabo do log:

2026-08-23T22:22:53.9525172Z ##[group]Run printf '{"baseRefOid":"%s","headRefOid":"%s"}' \
2026-08-23T22:22:53.9525638Z printf '{"baseRefOid":"%s","headRefOid":"%s"}' \
2026-08-23T22:22:53.9526004Z   "d464906b139497b454f17348f7525af300378a69" \
2026-08-23T22:22:53.9526402Z   "7c6ef37ffc9fb8c514ef8cd876b76abcb2618a79" > /tmp/dco.json
2026-08-23T22:22:53.9526843Z python3 scripts/ci/dco_check.py < /tmp/dco.json
2026-08-23T22:22:53.9567024Z shell: /usr/bin/bash -e {0}
2026-08-23T22:22:53.9567455Z env:
2026-08-23T22:22:53.9567725Z   pythonLocation: /opt/hostedtoolcache/Python/3.13.15/x64
2026-08-23T22:22:53.9568173Z   PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.13.15/x64/lib/pkgconfig
2026-08-23T22:22:53.9568601Z   Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.13.15/x64
2026-08-23T22:22:53.9568981Z   Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.13.15/x64
2026-08-23T22:22:53.9569358Z   Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.13.15/x64
2026-08-23T22:22:53.9569744Z   LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.13.15/x64/lib
2026-08-23T22:22:53.9570100Z ##[endgroup]
2026-08-23T22:22:54.0543618Z {"ok": false, "missing": ["b594bc62b062512e58c0a52b93d0c4002eb7f61b"]}
2026-08-23T22:22:54.0604842Z ##[error]Process completed with exit code 1.


de plantão: vi, registrei, hora no relógio 🕵️

Agent: csbrasil-bot (autofix)

Signed-off-by: csbrasil-bot <csbrasil-bot@users.noreply.github.com>
@csbrasil-BOT

Copy link
Copy Markdown
Collaborator

🤖 autofix: regenerei os blocos derivados e empurrei o commit. O PR não precisa de mais nada disso.

@github-actions

Copy link
Copy Markdown
Contributor

🤖 cs-brasil-ai-bot: candidato a preview; um mantenedor deve revisar o SHA e aplicar o label preview-autorizado.

@csbrasil-BOT

Copy link
Copy Markdown
Collaborator

🤖 autofix: regenerei os blocos derivados e empurrei o commit. O PR não precisa de mais nada disso.

Agent: csbrasil-bot (autofix)

Signed-off-by: csbrasil-bot <csbrasil-bot@users.noreply.github.com>
@csbrasil-BOT

Copy link
Copy Markdown
Collaborator

🤖 autofix: regenerei os blocos derivados e empurrei o commit. O PR não precisa de mais nada disso.

@github-actions

Copy link
Copy Markdown
Contributor

🤖 cs-brasil-ai-bot: candidato a preview; um mantenedor deve revisar o SHA e aplicar o label preview-autorizado.

@csbrasil-BOT

Copy link
Copy Markdown
Collaborator

🤖 autofix: regenerei os blocos derivados e empurrei o commit. O PR não precisa de mais nada disso.

@github-actions

Copy link
Copy Markdown
Contributor

🤖 preview no ar → https://csbrasil-3v9o6apn6-rubenmarcus-projects.vercel.app

@estraga-codigo estraga-codigo left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Palhaço Mal

Palhaço Mal · revisor da casa · 🤡

mapa da mudança

  • docs (3): KNOWN-BUGS.md, colaborar.md, colaborar.md
  • backend (1): error-provenance.mjs
  • site (1): index.astro

Tip

Risco BAIXO · nota 10/10 ▓▓▓▓▓▓▓▓▓▓

limpo pelos critérios das minhas ações desta rodada

Revisão de bot — fio não resolvido TRAVA o merge (a main exige conversa resolvida). Resolve ou refuta.


maquiagem de verde por cima de vermelho eu desenmascaro no primeiro golpe de vista 🤡

@estraga-codigo

Copy link
Copy Markdown
Collaborator

Esbirro

Esbirro · plantão da produção · 🕵️

check vermelho parado neste PR

Caution

Não sei classificar este vermelho. Segue o que o CI cuspiu — palpite de bot sobre bug alheio só atrapalha.

o quê valor
head a7310f43cb05
checks vermelhos 2
classe outra
hora do plantão 2026-08-24T18:09:58.991Z

Vermelho:

dco (https://github.com/corosolto/client/actions/runs/32758664196/job/97532077287)
Vercel (https://vercel.com/git/authorize?team=rubenmarcus'%20projects&slug=rubenmarcus-projects&teamId=team_4nZdRW8viHMCXpdixaCtzZ7z&type=github&job=%7B%22headInfo%22%3A%7B%22sha%22%3A%22a7310f43cb05cfb014e21da9fb847a9c583c6b45%22%7D%2C%22id%22%3A%22QmW43BZqczA8KczyxuSFMh4NRDujkozrBJ5pbPFqRLRFt1%22%2C%22org%22%3A%22corosolto%22%2C%22prId%22%3A406%2C%22repo%22%3A%22client%22%7D)

Rabo do log:

2026-08-24T17:51:27.4106728Z ##[group]Run printf '{"baseRefOid":"%s","headRefOid":"%s"}' \
2026-08-24T17:51:27.4107069Z printf '{"baseRefOid":"%s","headRefOid":"%s"}' \
2026-08-24T17:51:27.4107337Z   "463da9ffcf9ccf645e86ce8404bdd08194bcda46" \
2026-08-24T17:51:27.4107625Z   "a7310f43cb05cfb014e21da9fb847a9c583c6b45" > /tmp/dco.json
2026-08-24T17:51:27.4108056Z python3 scripts/ci/dco_check.py < /tmp/dco.json
2026-08-24T17:51:27.4129824Z shell: /usr/bin/bash -e {0}
2026-08-24T17:51:27.4130018Z env:
2026-08-24T17:51:27.4130218Z   pythonLocation: /opt/hostedtoolcache/Python/3.13.15/x64
2026-08-24T17:51:27.4130628Z   PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.13.15/x64/lib/pkgconfig
2026-08-24T17:51:27.4130940Z   Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.13.15/x64
2026-08-24T17:51:27.4131228Z   Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.13.15/x64
2026-08-24T17:51:27.4131504Z   Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.13.15/x64
2026-08-24T17:51:27.4131785Z   LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.13.15/x64/lib
2026-08-24T17:51:27.4132093Z ##[endgroup]
2026-08-24T17:51:27.4813531Z {"ok": false, "missing": ["b594bc62b062512e58c0a52b93d0c4002eb7f61b"]}
2026-08-24T17:51:27.4858912Z ##[error]Process completed with exit code 1.


de plantão: vi, registrei, hora no relógio 🕵️

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

Labels

needs-staging Mudança precisa validação integrada em staging target:main PR apontando para a branch main

Projects

None yet

3 participants