AgentPack — cards da tela de Projetos

A correção está em produção desde 21/10/2026 às 21:50 UTC.

Deploy concluído

O 3 pontinhos volta a abrir o menu

E os cards pararam de invadir o vizinho. Não era dois bugs: era um só.

A causa raiz

Os filhos do card são itens flex. No flexbox, o min-width default é auto — o item nunca encolhe abaixo do próprio conteúdo. A descrição do projeto (que costuma ser uma URL, sem espaços) empurrava o card 28 a 82px para fora da sua coluna, por cima do card vizinho.

O 3 pontinhos usa opacity-0 group-hover:opacity-100. Como ele caía sobre o vizinho, o mouse ficava sobre o card errado — o card de origem perdia o hover, o botão sumia no instante exato do clique, e o clique que sobrava caía no link esticado do título. Em vez do menu, abria o projeto.

correção min-w-0 nas três linhas flex do card + wrap-anywhere na descrição (a URL quebra em vez de esticar).

O que foi medido

10 / 12
cards estouravam a coluna, a 1920px
3787px
de invasão total, no mesmo teste
0 / 12
cards estouram, depois da correção
0px
de invasão, em 4 viewports

Prova no que está no ar

O queAntesAgora
Bundle dos cardsHome-HiFcmfBb.jsHome-luCh0W6u.js
Commit em produção029675332ac3ae5e
Containerb3615c6a886b0d4025ac2543
CSS .min-w-0ausentemin-width:0
CSS .wrap-anywhereausenteoverflow-wrap:anywhere
Comparação byte a bytebundle servido = build local do mesmo commit, idêntico

Por que as 4 partes da correção

Cada parte é uma defesa diferente. Tirar uma não quebra as outras — por isso o gate novo mede as quatro separadamente, e cada medição morre se a parte correspondente for removida.

O gate que protege a correção

O gate antigo media geometria — e 3 das 4 partes da correção podiam ser removidas sem que nenhum assert caísse. Foi medido, mutante a mutante. Agora cada parte tem uma medição que morre sem ela, e a matriz inteira morre:

MutanteO que someGate
M0a base inteira (o bug)morre (6 de 7 caem)
M1wrap-anywhere da descriçãomorre
M2min-w-0 do topomorre (6 de 7 caem)
M3min-w-0 do manifestomorre
M4min-w-0 do rodapémorre
M5os três min-w-0morre (6 de 7 caem)

A medição nova do sintoma: elementFromPoint no canto onde a pessoa mira tem que devolver o 3 pontinhos, e não o link esticado do título — que é exatamente o defeito que o dono sentiu.

Fora do escopo (reportado, não mexido)

No celular o 3 pontinhos é invisível O group-hover compila dentro de @media (hover:hover). Medido num iPhone 13: (hover: hover) = false, wrapper com opacity: 0. Mas continua clicável (visibility: visible, tabIndex: 0, o hit-test acerta). Invisível, não quebrado — e pré-existente em 19 telas do app. O defeito que você viu era no desktop (o log de prod mostra seus acessos em Chrome desktop).
Cards de Tokens (tela do Render) Mesmo padrão (grid auto-fit + flex sem min-w-0). Não medido — merece a própria tarefa.

Falta o seu clique

A tela que medi é a de produção, com dados de mentira — os seus projetos reais é que têm as URLs longas. Abra a tela de Projetos e clique no 3 pontinhos de um card. Precisa abrir o menu, sem pular para o projeto.

https://agentpack-v0.mp.serendiped.com