ci: reintentar la revision con IA cuando falla el proveedor #3

Merged
jpbeldomenico merged 2 commits from fix/ai-review-reintentos into main 2026-08-03 22:50:22 -03:00
Owner

Ver el commit. Reintenta hasta 3 veces solo ante fallas del proveedor del modelo, y arregla el guard que evaluaba el codigo de salida de tee.

Ver el commit. Reintenta hasta 3 veces solo ante fallas del proveedor del modelo, y arregla el guard que evaluaba el codigo de salida de tee.
jpbeldomenico added 1 commit 2026-08-03 21:10:48 -03:00
fix(ci): reintentar la revision con IA cuando falla el proveedor
Revisión con IA / ai-review (pull_request) Successful in 44s
a7bb038b6b
El 03/08/2026 OpenRouter devolvio 502 con el modelo gratuito y el pull
request se mergeo sin revisar. Ahora revisar() reintenta hasta 3 veces con
espera creciente (30s, 60s), pero solo ante las marcas que deja una falla
al pedirle la respuesta al modelo: un 401 o un modelo que ya no existe
siguen cortando en el primer intento, porque esperar no los arregla.

De paso se saca la tuberia a tee: el codigo de salida que se evaluaba era
el de tee, siempre 0, asi que esa mitad del guard nunca hizo nada.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Collaborator

Qué cambia
Se agrega lógica de reintento con backoff exponencial al step de revisión por IA. El script ahora detecta errores transitorios del proveedor (502, timeouts, rate limits, respuestas vacías) y reintenta hasta 3 veces (30s, 60s, 120s). También se corrige un bug: el pipe a tee ocultaba el código de salida real de ai-review.

Riesgos

  • Los patrones PASAJEROS podrían ser demasiado amplios (reintentar fallos no transitorios) o demasiado estrechos (no cubrir nuevos errores del proveedor).
  • El tiempo máximo de espera suma ~3,5 min; si el job ya es lento, puede impactar el SLA del CI.
  • Se pierde el streaming de la salida en vivo (ahora se vuelca el log al final), lo que dificulta depurar en tiempo real.

Antes de aprobar

  • Verificar que ERRORES y PASAJEROS cubran los casos reales vistos en logs de OpenRouter (502, 429, timeouts, schema vacío) y que no matcheen 401, 404 de modelo, ni errores de validación propios.
  • Probar un run forzando un error transitorio (p. ej. mock 502) y confirmar que reintenta y luego pasa.
  • Confirmar que un error real (credenciales inválidas) falla rápido sin consumir los 3 intentos.

#ai-review-summary

**Qué cambia** Se agrega lógica de reintento con backoff exponencial al step de revisión por IA. El script ahora detecta errores transitorios del proveedor (502, timeouts, rate limits, respuestas vacías) y reintenta hasta 3 veces (30s, 60s, 120s). También se corrige un bug: el pipe a `tee` ocultaba el código de salida real de `ai-review`. **Riesgos** - Los patrones `PASAJEROS` podrían ser demasiado amplios (reintentar fallos no transitorios) o demasiado estrechos (no cubrir nuevos errores del proveedor). - El tiempo máximo de espera suma ~3,5 min; si el job ya es lento, puede impactar el SLA del CI. - Se pierde el streaming de la salida en vivo (ahora se vuelca el log al final), lo que dificulta depurar en tiempo real. **Antes de aprobar** - Verificar que `ERRORES` y `PASAJEROS` cubran los casos reales vistos en logs de OpenRouter (502, 429, timeouts, schema vacío) y que *no* matcheen 401, 404 de modelo, ni errores de validación propios. - Probar un run forzando un error transitorio (p. ej. mock 502) y confirmar que reintenta y luego pasa. - Confirmar que un error real (credenciales inválidas) falla rápido sin consumir los 3 intentos. #ai-review-summary
jpbeldomenico added 1 commit 2026-08-03 21:26:25 -03:00
fix(ci): no dar por fallida una revision por el texto de su comentario
Revisión con IA / ai-review (pull_request) Successful in 1m59s
a312815140
El guard buscaba "Error: " en el log, pero el log tambien trae lo que escribe
el modelo. En inventario#3 la revision salio bien y comento justamente que ese
patron era demasiado amplio: el comentario quedo impreso, matcheo el patron y
el job quedo en rojo. Lo encontro la propia revision con IA.

Ahora se miran las marcas de nivel que imprime la herramienta (| ERROR | y
| CRITICAL |), que el modelo no escribe, y el traceback al principio de linea.
Verificado contra los logs reales guardados: detecta la falla por el 502 de
OpenRouter y deja pasar las tres revisiones que salieron bien.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
jpbeldomenico merged commit dd7f73453e into main 2026-08-03 22:50:22 -03:00
jpbeldomenico deleted branch fix/ai-review-reintentos 2026-08-03 22:50:22 -03:00
Sign in to join this conversation.
No Reviewers
No Label
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: jpbeldomenico/taller_automotriz#3