A dor de "ser o cabo de rede entre o browser e o terminal" resumiu com precisão cirúrgica o maior atrito de desenvolver front-end usando agentes hoje. Essa dança de tirar print, caçar arquivo e descrever elemento cansa rápido demais.
A parte dos perrengues específicos do Windows foi puro suco de desenvolvimento na prática. O limite de 8191 caracteres do cmd.exe quebrando payloads grandes e as barras invertidas dobradas com JSON.stringify são daquelas pegadinhas clássicas que só aparecem em produção. Gravar o dump do contexto em disco e mandar só a referência pro agente foi a melhor saída técnica possível.
Outro detalhe sutil e muito bom: carimbar apenas tags intrínsecas pra não vazar prop no JSX dos componentes React.
Fiquei com uma dúvida de uso real: como a captura se comporta quando o elemento clicado está dentro de um Portal (tipo um Dialog/Popover do Radix ou componentes headless comuns do Shadcn) que renderiza no final do ? Pela leitura do Fiber ele ainda consegue resolver o arquivo de origem do componente pai sem se perder?
Parabéns pelo nível técnico do post e pelo lançamento, vou instalar o kolaby aqui pra testar no fluxo diário!
Funciona, e não é o DOM que resolve.
O arquivo:linha é um atributo carimbado na tag em build, então ele viaja junto com o nó. Se o JSX dentro do Dialog.Content é seu, o botão chega no fim do <body> já com o carimbo.
A cadeia de componentes sobe por fiber.return, que é a árvore de render, não a do DOM. O React mantém esse ponteiro através do portal, então Dialog > Card > Page sai certo mesmo com o nó fora de lugar.
Tem até uma detecção pra headless: se o nó clicado não tem carimbo próprio, comparo a cadeia dele com a do ancestral carimbado, e o que sobra é a biblioteca. O agente recebe avisado de que o arquivo é onde você usa o Radix, e pra não editar node_modules.
Agora, você me pegou num furo.
A busca pelo ancestral carimbado era closest(), ou seja, DOM. Se você clicasse num nó que o próprio Radix renderiza (o overlay, o popper wrapper), não tem carimbo — e a subida escapava do portal direto pro <body>. No Vite não achava nada. No Next era pior: o <body> do layout é carimbado, então responderia o layout, calado.
Já troquei essa subida por fiber.return também, e escrevi um teste com React e portal de verdade que confirma os dois lados: a cadeia atravessa, o closest() não. Saiu na 0.3.2.