☰ Menu

08.10.2026 · Signal Titans Editorial

IssueRelay combina Next.js y TypeSafe Jev para redirigir informes de errores a GitHub

El proyecto de código abierto IssueRelay usa Next.js, PostgreSQL y el modelo Jev de TypeSafe para clasificar comentarios y exportar errores a GitHub.

Una ilustración vectorial minimalista que muestra bloques de datos pasando a través de un embudo de cristal translúcido y emergiendo como una esfera verde pulida.

El desarrollador Andrew Baisden ha presentado IssueRelay, un sistema de comentarios de código abierto diseñado para recopilar solicitudes de soporte de visitantes en aplicaciones Next.js y React, clasificarlas mediante IA y convertir los errores confirmados en incidencias de GitHub. El sistema combina un widget de React basado en Shadow DOM, almacenamiento en PostgreSQL y el modelo Jev de TypeSafe para categorizar los tickets entrantes sin exponer datos privados de los usuarios en repositorios públicos.

Arquitectura y flujo de trabajo multietapa

IssueRelay procesa los informes de soporte a través de varias etapas diferenciadas. Las llamadas entrantes se escriben inicialmente de forma directa en una base de datos PostgreSQL en Neon gestionada mediante Drizzle ORM antes de invocar cualquier servicio secundario. Almacenar los datos sin procesar antes del triaje evita la pérdida de mensajes durante interrupciones de red, caídas de API de terceros o eventos de límite de frecuencia.

El widget integrable para el frontend está publicado en npm como @issuerelay/widget. Encapsulado dentro de un Shadow DOM, el componente evita colisiones de estilos con las aplicaciones anfitrionas y opera junto con políticas estrictas de seguridad de contenido. Las validaciones en el lado del servidor comprueban las claves de proyecto entrantes, las reglas de origen cruzado y los identificadores únicos de envío para evitar tickets duplicados.

Triaje con IA mediante TypeSafe Jev

La clasificación de tickets se apoya en Jev, un modelo especializado de TypeSafe diseñado para tareas discretas de toma de decisiones en lugar de la generación de texto de formato libre. Utilizando el SDK oficial de TypeSafe, IssueRelay envía a Jev el mensaje sin procesar del visitante y la pista de categoría seleccionada, omitiendo nombres, direcciones de correo electrónico e identificadores de tickets.

Jev evalúa la entrada frente a opciones explícitas para categorizar el ticket (como error, solicitud de función, pregunta o correo no deseado) y asignar una puntuación de gravedad (que oscila entre baja y crítica). La respuesta devuelve puntuaciones de confianza probabilísticas. Funciones estándar de TypeScript evalúan estas métricas de confianza para asignar rutas en las colas, restringiendo las recomendaciones automáticas de elevación a GitHub a los informes de errores que alcancen un umbral de confianza mínimo de 0,9.

Filtro de privacidad de datos y sincronización con GitHub

Antes de que el propietario eleve un ticket a GitHub, un filtro de privacidad revisa el contenido del informe. El paquete escanea en busca de información de contacto, claves API, JSON Web Tokens, claves privadas, detalles de tarjetas de crédito y nombres del remitente para mantener los datos personales dentro del panel privado de la plataforma IssueRelay.

Las incidencias de GitHub se crean exclusivamente mediante una aplicación de GitHub dedicada que utiliza permisos delimitados en el repositorio. En cada incidencia creada se incluye un comentario HTML con un marcador de ticket único, lo que permite a la plataforma verificar si la incidencia se publicó en caso de que una solicitud de red agote el tiempo de espera. Los webhooks firmados gestionan la sincronización bidireccional, garantizando que el cierre o la reapertura de una incidencia en GitHub actualice automáticamente el estado del ticket en el panel.

Ilustración editorial generada con IA; no es una fotografía documental.

Fuente: How to Build an AI Support System That Automatically Routes Bugs to GitHub with Next.js and Jev