diff --git a/.gitea/workflows/ai-review.yml b/.gitea/workflows/ai-review.yml index b42c880..60d4bee 100644 --- a/.gitea/workflows/ai-review.yml +++ b/.gitea/workflows/ai-review.yml @@ -179,7 +179,15 @@ jobs: # comentarios: imprime el traceback y saluda con # "AI review completed successfully!". Sin esto el job quedaria en # verde sin haber revisado nada, que es peor que fallar. - ERRORES='Traceback \(most recent call last\)|HTTPClientError|Error: ' + # + # Cuidado con QUE se busca: el log tambien trae el texto de los + # comentarios que escribe el modelo, y ese texto puede decir + # cualquier cosa. El patron 'Error: ' que habia antes se disparo con + # el comentario de la propia revision (inventario#3) y marco como + # fallida una revision que habia salido bien. Por eso ahora se miran + # las marcas de nivel que imprime la herramienta, que el modelo no + # escribe, y el traceback al principio de linea. + ERRORES='\| (ERROR|CRITICAL) \||^Traceback \(most recent call last\)' # El plan gratuito de OpenRouter devuelve 502 cuando los proveedores # del modelo estan saturados; pasó el 03/08/2026 y el pull request se @@ -207,11 +215,11 @@ jobs: ai-review "${modo}" > "${registro}" 2>&1 || salida=$? cat "${registro}" - if [ "${salida}" -eq 0 ] && ! grep -qiE "${ERRORES}" "${registro}"; then + if [ "${salida}" -eq 0 ] && ! grep -qE "${ERRORES}" "${registro}"; then return 0 fi - if [ "${intento}" -ge "${INTENTOS}" ] || ! grep -qiE "${PASAJEROS}" "${registro}"; then + if [ "${intento}" -ge "${INTENTOS}" ] || ! grep -qE "${PASAJEROS}" "${registro}"; then echo "La revisión reportó errores en '${modo}' pese a terminar sin código de error." >&2 return 1 fi