- GeminiVisionService: eliminar thinkingConfig (rompe modelos flash),
reducir maxOutputTokens 8192→512, timeout 20→40s, default gemini-2.0-flash
- PublicChat: detectar correctamente errores de Gemini (__error/__parse_error)
que antes pasaban el guard if(!$datosPago) por ser arrays truthy
- PagoValidadorService: tolerancia de hora 0→3 min, remitente >=2→>=1 palabra
- CorreoImapService: break→continue en correos fuera de ventana (IMAP no
garantiza orden cronológico), fetchSize *4→*2 para evitar timeout
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- PagoValidadorService: add detailed Log::info at every step (emails count,
body preview, parser result, which filter fails) so failures are visible in laravel.log
- CorreoImapService::cleanBody: detect and decode base64-encoded BODY[1] before
QP decoding — critical fix when Bancolombia sends HTML part as base64
- BancolombiaParser: make esBancolombia() broader (includes 'valor','$','abono' etc.),
add extraerPrimero() helper, add multiple regex fallbacks for remitente/fecha/hora/valor
to handle different Bancolombia email HTML formats beyond the SMS text pattern
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>