Saltar al contenido principal

v1.4.2 - Corrección de Parser JSON en Chat IA

· 3 min de lectura
Lewis Lopez Gomez
Software Engineer

Estamos lanzando la versión 1.4.2 con una corrección crítica en el parser JSON del chat IA que previene que la página crashee cuando recibe respuestas con JSON malformado.

🐛 Problema Corregido​

Error Reportado​

This page crashed
Try again
Expected double-quoted property name in JSON at position 31 (line 2 column 30)

Causa​

El parser del chat intentaba hacer JSON.parse() sin manejo de errores cuando encontraba bloques de código con JSON malformado o incompleto, causando que toda la página crasheara.

✅ Soluciones Implementadas​

1. Try-Catch en Parseo de JSON​

Agregamos manejo de errores en la función flushCodeBlock:

if (lang === 'json') {
try {
const parsed = JSON.parse(codeText);
formattedCode = JSON.stringify(parsed, null, 2);
} catch (e) {
// Si hay error al parsear, mostrar el código tal cual
formattedCode = codeText;
}
}

Beneficio: Si el JSON no es válido, simplemente muestra el código sin intentar formatearlo.

2. Validación Mejorada de JSON​

Mejoramos el validador isValidJSON para verificar que el JSON esté cerrado correctamente:

function isValidJSON(str: string): boolean {
try {
const trimmed = str.trim();
if (!trimmed.startsWith('{') && !trimmed.startsWith('[')) return false;
// Solo intentar parsear si parece una estructura completa
if (trimmed.endsWith('}') || trimmed.endsWith(']')) {
JSON.parse(trimmed);
return true;
}
return false;
} catch {
return false;
}
}

Beneficio: Verifica integridad antes de intentar parsear.

3. Robustez General​

  • ✅ El parser ya no crashea si encuentra JSON inválido
  • ✅ Muestra el código tal cual si no puede formatearlo
  • ✅ El botón de copiar funciona incluso si no es JSON válido
  • ✅ La experiencia del usuario es fluida sin interrupciones

🎯 Comportamiento Nuevo​

Antes (v1.4.1)​

JSON Inválido → JSON.parse() Falla → Página Crashea ❌

Después (v1.4.2)​

JSON Inválido → Try-Catch captura error → Muestra código sin formato ✅

📊 Cambios​

  • Líneas modificadas: 4
  • Líneas agregadas: 17
  • Errores corregidos: 1 (crítico)
  • Compatibilidad: 100% hacia atrás

🔍 Casos Cubiertos​

Ahora el chat maneja correctamente:

✅ JSON malformado sin comillas
✅ JSON incompleto (sin cerrar llaves)
✅ JSON con caracteres especiales sin escapar
✅ JSON dentro de bloques markdown
✅ Código incompleto o parcial

🚀 Mejoras Incluidas​

Este release incluye además:

  • 📝 Documentación de mandatos (v1.4.1)
  • 📋 Ejemplo JSON completo de facturas de mandato
  • 💬 Chat mejorado con mejor manejo de errores
  • 🎨 UI/UX profesional completamente responsivo

📚 Recursos​

✅ Testing​

Validado con:

  • ✅ Build completado exitosamente
  • ✅ Sin errores de TypeScript
  • ✅ Responsive en todos los breakpoints
  • ✅ Funcional en navegadores modernos

🔗 Relacionado​

  • v1.4.1: Soporte de mandatos en facturas
  • v1.4.0: Marco regulatorio DIAN completo

¡Actualiza ahora para disfrutar de un chat más estable! Prueba el Chat Asistente IA sin preocuparte por errores de parsing.

Versión: 1.4.2
Fecha: 17 de Octubre de 2025
Tipo: Bug Fix (Patch)
Estado: ✅ Producción
Impacto: Crítico