Repository navigation
🚀 VersaCompiler v3.0.0
[3.0.0] - 2025-11-05
✨ Agregado
- Monitoreo de archivos de log: Nueva funcionalidad completa para monitorear carpetas de archivos de log en tiempo real
- Gestión de carpetas con rutas personalizables
- Filtrado por extensiones de archivo (.log, .txt, etc.)
- Filtrado por patrones de nombres de archivo (errors_, access_, etc.)
- Selección de formato de log (JSON o texto plano)
- Edición completa de configuraciones de carpetas monitoreadas
- Visualizador de archivos de log: Componente dedicado para ver contenido de archivos
- Vista en tiempo real con actualización automática
- Detección automática de formato JSON en archivos
- Pretty-printing de JSON con indentación de 2 espacios
- Resaltado de sintaxis para archivos JSON con colores diferenciados:
- Claves en azul (#0066cc light / #61afef dark)
- Strings en verde (#067d17 light / #98c379 dark)
- Números en rojo (#d73a49 light / #d19a66 dark)
- Booleanos en azul negrita (#005cc5 light / #56b6c2 dark)
- Valores null en morado cursiva (#6f42c1 light / #c678dd dark)
- Filtrado de logs en tiempo real por texto
- Contador de líneas totales y filtradas
- Botón para limpiar todos los logs
🎨 Interfaz
- Panel horizontal dividido: Nueva distribución de pantalla
- Panel superior (60% altura): Lista de logs de dumps HTTP
- Panel inferior (40% altura): Visor de archivos de log monitoreados
- Separador redimensionable con límites 30%-70%
- Cursor row-resize para indicar área de ajuste
- Gestión mejorada de carpetas: Interface completa CRUD
- Botón de editar con ícono de lápiz
- Modal de edición con campos prellenados
- Ruta no editable en modo edición (previene inconsistencias)
- Badge visual que muestra el formato (TEXT/JSON)
- Selector de formato en modales de agregar/editar
- Nuevos iconos: Agregados al sistema de iconos personalizado
file: Ícono de documento para abrir panel de archivosedit: Ícono de lápiz para editar configuracionesplus: Ícono + para agregar nuevas carpetas
🔧 Mejorado
- Backend robusto para monitoreo de archivos:
- Sistema de FileWatcher con fsnotify para detección de cambios
- Soporte para múltiples carpetas simultáneas
- Reinicio automático del watcher al cambiar perfiles activos
- Manejo eficiente de eventos de archivo (CREATE, WRITE, REMOVE)
- Lectura incremental de archivos grandes
- Gestión de configuración expandida:
- Nuevas funciones
AddLogFolderyUpdateLogFolderen el backend - Persistencia automática en config.yml
- Validación de rutas y parámetros
- Campo
Formatañadido a la estructuraLogFolder
- Nuevas funciones
- Sistema de eventos mejorado:
- Evento
log:file:linepara transmitir líneas de log al frontend - Evento
log:file:clearpara limpiar logs del archivo actual - Sincronización en tiempo real entre backend y frontend
- Evento
🔧 Técnico
- Estructura de datos mejorada:
type LogFolder struct { Path string `yaml:"path" json:"path"` Extensions []string `yaml:"extensions" json:"extensions"` Filters []string `yaml:"filters,omitempty" json:"filters,omitempty"` Format string `yaml:"format,omitempty" json:"format,omitempty"` // "text" or "json" }
- Funciones de backend con 5 parámetros:
AddLogFolder(profileName, path, extensions, filters, format string)UpdateLogFolder(profileName, path, extensions, filters, format string)
- Algoritmo de detección JSON:
const tryParseJson = (line) => { try { const parsed = JSON.parse(line); const formatted = JSON.stringify(parsed, null, 2); return { isJson: true, formattedLine: formatted, coloredJson: colorizeJson(formatted) }; } catch (e) { return { isJson: false, formattedLine: line, coloredJson: '' }; } };
- Colorización de JSON con regex:
- Claves:
/(".*?")\s*:/g - Strings:
/:\s*(".*?")/g - Números:
/:\s*(\d+)/g - Booleanos:
/:\s*(true|false)/g - Null:
/:\s*(null)/g
- Claves:
- CSS con :deep() para v-html: Penetración de estilos en contenido renderizado dinámicamente
- Wails bindings regenerados: TypeScript definitions actualizadas con firmas correctas
📝 Traducciones
- Nuevas claves en i18n:
log_format,format_text,format_json,format_helpedit_log_folder,edit,path_cannot_be_changederror_updating_folder,log_folders,add_log_folderfile_path,file_extensions,file_filters
- Soporte completo en español e inglés para todas las nuevas funcionalidades
🐛 Corregido
- Botón de archivo invisible: Agregado ícono
filefaltante al componente Icon.vue - Layout vertical en lugar de horizontal: Cambiado de split izquierda/derecha a arriba/abajo
- Error "UpdateLogFolder is not a function": Bindings de Wails regenerados correctamente
- Error de firma de función: Parámetro
formatagregado y bindings actualizados (4 args → 5 args) - JSON sin formato: Implementado sistema completo de detección, formateo y colorización
💡 Compatibilidad
- Retrocompatibilidad: Campo
formatcon valor por defecto "text" para configuraciones existentes - Degradación elegante: JSON inválido se muestra como texto plano sin errores
- Multi-plataforma: Monitoreo de archivos funciona en Windows, macOS y Linux
- Temas adaptativos: Colores de sintaxis JSON optimizados para modo claro y oscuro
🚀 Performance
- Lectura eficiente de archivos: Buffer de 4KB para archivos grandes
- Procesamiento incremental: Solo se procesan líneas nuevas
- Regex optimizado: Colorización sin impacto perceptible en rendimiento
- Renderizado condicional: JSON solo se procesa si es detectado como válido
🔧 Arquitectura
- Separación de responsabilidades:
App.vue: Layout principal con split panel horizontalLogFileViewer.vue: Visualización y formateo de logs de archivoLogFoldersManager.vue: Gestión CRUD de carpetas monitoreadasconfig.go: Estructuras de datos y persistenciaapp.go: Lógica de negocio y funciones exportadas a frontendserver.go: FileWatcher y eventos de archivo en tiempo real
Full Changelog: v2.2.0...v3.0.0