O agente passou dez minutos editando o projeto e respondeu "pronto". Antes do commit, você quer saber exatamente o que mudou, e de preferência qual pedido seu causou cada mudança. O /diff da Verboo Code mostra as duas coisas sem sair da sessão: tudo o que está sem commit no repositório e, separado, o que cada turno da conversa editou.
O que o /diff faz na Verboo Code?
Abre um diálogo com as mudanças ainda não commitadas, calculadas com git diff HEAD, e uma aba para cada turno da conversa em que o agente editou arquivo. Você navega pela lista de arquivos e abre o diff de cada um com cores de adição e remoção, sem abrir outro terminal.
Como revisar as mudanças do agente, passo a passo?
Dentro da sessão, digite:
/diff
O diálogo abre com o título Uncommitted changes (git diff HEAD) e um resumo como 4 files changed +87 -12. Embaixo vem a lista de arquivos. Os atalhos são estes:
| Tecla | Na lista de arquivos | Dentro de um arquivo |
|---|---|---|
↑ / ↓ | Seleciona o arquivo | (sem efeito) |
Enter | Abre o diff do arquivo | (sem efeito) |
← / → | Troca a origem: Current, T3, T2... | ← volta para a lista |
Esc | Fecha o diálogo | Volta para a lista |
Como ver só o que um pedido específico mudou?
Use as setas ← e → na lista. Quando algum turno da conversa editou arquivo, aparece um seletor no topo, por exemplo Current · T3 · T2 · T1, com o turno mais recente primeiro. Cada turno começa numa mensagem sua, e o título mostra o número e o começo do seu pedido, cortado em 30 caracteres, como Turn 3 "adiciona validação no formulá…".
Isso resolve o caso clássico: o agente mexeu em seis arquivos ao longo de três pedidos e um teste quebrou. Em vez de ler o diff inteiro, você abre T2 e vê só o que o segundo pedido alterou. Turno sem edição de arquivo não aparece no seletor.
Armadilha: o diff por turno só enxerga edição feita pelas ferramentas de arquivo. Ele monta cada turno a partir dos resultados das ferramentas de edição e escrita de arquivo (Edit e Write). Se o agente mudou arquivo por comando de terminal, como sed -i, npm run format, prettier --write ou um gerador de código, essa mudança não aparece no turno. Ela aparece em Current, porque ali quem calcula é o git. Na dúvida, compare os dois:
# o que o git vê, independente de como foi editado
git diff HEAD --stat
Se um arquivo está no --stat e em nenhum turno, foi alterado por comando, não pela ferramenta de edição.
Por que o /diff diz "Working tree is clean" se eu tenho mudanças?
Porque Current mostra essa mensagem sempre que o git não devolve diff, e não só quando o repositório está limpo. Confira os quatro casos abaixo antes de achar que o agente não salvou nada:
| Situação | O que o /diff mostra em Current | O que fazer |
|---|---|---|
| Merge, rebase, cherry-pick ou revert em andamento | Working tree is clean, de propósito: as mudanças ali vêm de outro branch, não do agente | Termine ou aborte a operação (git rebase --continue, git merge --abort) e abra o /diff de novo |
| Repositório sem nenhum commit | Working tree is clean, porque git diff HEAD falha sem HEAD | Faça o primeiro commit; até lá use os turnos (←/→) |
| Pasta fora de um repositório git | Working tree is clean | git init, ou revise pelos turnos |
| Repositório muito grande, git demora mais de 5 segundos | Pode vir vazio, porque cada chamada ao git tem limite de 5 segundos | git diff HEAD --stat direto no terminal |
Quais são os limites do /diff?
O diálogo foi feito para revisão rápida, não para diff gigante. Os limites estão no código da CLI:
| Caso | Comportamento |
|---|---|
| Mais de 50 arquivos alterados | A lista mostra só os 50 primeiros; o resumo do topo continua com o total real |
| Mais de 500 arquivos alterados | Mostra só os totais e a mensagem Too many files to display details |
| Arquivo com mais de 400 linhas alteradas | Marcado (truncated), com diff truncated (exceeded 400 line limit) no fim |
| Diff de um arquivo acima de 1 MB | Large file - diff exceeds 1 MB limit |
| Arquivo binário | Binary file - cannot display diff |
| Arquivo novo, ainda não rastreado | Aparece como (untracked), sem conteúdo, com a dica Run `git add <arquivo>` to see line counts. |
Arquivo novo ignorado pelo .gitignore não entra na lista. Para ver o conteúdo de um arquivo novo em Current, coloque ele no índice, porque o git diff HEAD compara o último commit com o que está no disco, staged ou não:
git add src/novo-modulo.ts
Feche e abra o /diff de novo: o diálogo calcula o diff quando abre, e o arquivo passa a aparecer com as linhas adicionadas. No diff por turno o arquivo novo já aparece completo, porque vem do próprio resultado da ferramenta de escrita.
Achei uma mudança errada no /diff. Como desfaço?
Depende de onde ela veio. Se foi o último pedido, o /rewind volta a conversa e o código para antes daquele turno. Se é um arquivo só, o git resolve sem mexer na conversa:
# descarta a mudança de um arquivo rastreado
git restore src/auth/login.ts
Se a ideia é testar outra abordagem sem perder a atual, /branch bifurca a conversa antes de você pedir a alternativa.
Revisar turno a turno funciona melhor com pedidos pequenos: um pedido, uma mudança, um T no seletor. Na Verboo Code os planos rodam com token ilimitado, então quebrar a tarefa em dez pedidos curtos custa o mesmo que mandar tudo num só.



