fix: el diff que leen los modelos deja fuera lo generado y tiene tope #15

Merged
julio.caicedo merged 1 commit from fix/diff-sin-generados-y-con-tope into main 2026-10-23 14:54:06 +00:00

Por qué: cada /revisar en balanzio/api#20 costó unos USD 5,5 en OpenRouter (dos rondas el 23-oct, de 250 k a 1,1 M tokens de entrada por modelo). El diff pesaba 923 KB, y 900 KB eran internal/yabi/gen/operations_gen.go, el cliente generado por genqlient. Con #12 (todos los archivos) habría subido a 1,6 MB por el schema.graphql.

Qué cambia, en el programa, antes de que el diff salga:

  • Fuera el código generado: la cabecera // Code generated … DO NOT EDIT. de Go, leída del árbol del PR dentro de la raíz confinada.
  • Fuera go.sum.
  • Fuera cualquier archivo de más de 100 KB en el diff (-max-file).
  • Si lo que queda pasa de 200 KB (-max-diff), no se llama a ningún modelo: se publica «No se revisó: el diff pesa N KB y el límite es 200 KB. Esto no es una aprobación» y el paso falla.
  • Lo que quedó fuera se nombra en la revisión («Archivos que no se revisaron»), para que nadie lo dé por revisado.
  • El fusible de frases prohibidas y los comentarios en línea usan el diff ya recortado: es lo que sale.

Pruebas

  • TestTrimDiff, TestIsGenerated (la cabecera después de un build tag cuenta; un comentario que solo la menciona, no; ../ no sale de la raíz), TestTooBigIsNotAnApproval.
  • Sobre el diff real del #20: 1606 KB → 8 KB. Fuera: go.sum, operations_gen.go (generado), schema.graphql (669 KB).

🤖 Generated with Claude Code

**Por qué:** cada `/revisar` en balanzio/api#20 costó unos **USD 5,5** en OpenRouter (dos rondas el 23-oct, de 250 k a 1,1 M tokens de entrada por modelo). El diff pesaba 923 KB, y **900 KB eran `internal/yabi/gen/operations_gen.go`**, el cliente generado por genqlient. Con #12 (todos los archivos) habría subido a 1,6 MB por el `schema.graphql`. **Qué cambia**, en el programa, antes de que el diff salga: - Fuera el **código generado**: la cabecera `// Code generated … DO NOT EDIT.` de Go, leída del árbol del PR dentro de la raíz confinada. - Fuera **`go.sum`**. - Fuera **cualquier archivo de más de 100 KB** en el diff (`-max-file`). - Si lo que queda pasa de **200 KB** (`-max-diff`), no se llama a ningún modelo: se publica «No se revisó: el diff pesa N KB y el límite es 200 KB. Esto no es una aprobación» y el paso falla. - Lo que quedó fuera se nombra en la revisión («Archivos que no se revisaron»), para que nadie lo dé por revisado. - El fusible de frases prohibidas y los comentarios en línea usan el diff ya recortado: es lo que sale. **Pruebas** - `TestTrimDiff`, `TestIsGenerated` (la cabecera después de un build tag cuenta; un comentario que solo la menciona, no; `../` no sale de la raíz), `TestTooBigIsNotAnApproval`. - Sobre el diff real del #20: **1606 KB → 8 KB**. Fuera: `go.sum`, `operations_gen.go` (generado), `schema.graphql` (669 KB). 🤖 Generated with [Claude Code](https://claude.com/claude-code)
fix: el diff que leen los modelos deja fuera lo generado y tiene tope
All checks were successful
Go / Test (pull_request) Successful in 34s
33f64e78d6
Cada /revisar en balanzio/api#20 costó unos USD 5,5: el diff pesaba
923 KB, 900 de ellos un cliente generado por genqlient, y los cuatro
modelos lo leyeron entero. Ahora salen del diff el código generado
(cabecera de Go), go.sum y cualquier archivo de más de 100 KB, y si lo
que queda pasa de 200 KB no se llama a ningún modelo. Lo que queda fuera
se nombra en la revisión. El #20 baja de 1606 KB a 8 KB.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
julio.caicedo deleted branch fix/diff-sin-generados-y-con-tope 2026-10-23 14:54:06 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
startcodex/ci!15
No description provided.