# Notas de la versión v1.2.0.0 (2026-01-25)

LLMS index: [llms.txt](/v1.2.0.0/llms.txt)

---

## Añadido

* **NUEVO**: Procesamiento de registros multilínea para bloques de detalle PACKET de DNS
  * Las entradas de contexto PACKET ahora pueden incluir información detallada de conexión TCP/UDP y estructura de mensajes DNS
  * Los bloques de detalle se analizan en formato JSON estructurado en la nueva columna `Details`
  * Incluye: Información de socket, dirección/puerto remotos, datos de temporización, estructura del mensaje (XID, Flags, QCOUNT, etc.)
  * Se capturan las secciones DNS (QUESTION, ANSWER, AUTHORITY, ADDITIONAL) con detalles completos de los registros
  * Los nombres de dominio codificados en los bloques de detalle se convierten automáticamente al formato FQDN
* **NUEVO**: Columna `Details` en la salida CSV
  * Contiene datos JSON estructurados para entradas PACKET con bloques de detalle
  * Vacía para entradas PACKET sin detalles y para todos los contextos que no son PACKET
  * Permite un análisis profundo de paquetes e investigación forense de consultas/respuestas DNS
* **NUEVO**: Parámetro conmutador `NoDetailsParsing` para optimización de rendimiento
  * Omite el costoso análisis JSON de los bloques de detalle PACKET
  * ***Puede mejorar*** la velocidad de procesamiento en un **30-50%** para registros con muchos bloques de detalle
  * Úsalo al procesar archivos muy grandes (100MB+) cuando no se necesite la estructura detallada del paquete
  * Los bloques de detalle siguen recogidos en la columna Information, pero la columna Details permanece vacía
* **NUEVO**: Soporte de continuación multilínea para contextos que no son PACKET
  * EVENT, Note, DSPoll y otros contextos ahora pueden abarcar varias líneas
  * Las líneas de continuación indentadas se unen automáticamente al campo Information del registro principal
  * Preserva mensajes de error completos, actualizaciones de zona y salida diagnóstica
* **NUEVO**: `ContextFilter` reconoce tipos de contexto adicionales: `DSPoll`, `Init`, `Lookup`, `Recurse`, `Remote`, `Tombstone`
  * Efecto: `Convert-DNSDebugLogFile` ahora puede incluir/excluir estas entradas diagnósticas y de ciclo de vida mediante `-ContextFilter`
* **NUEVO**: La salida de estadísticas ahora incluye dos archivos dedicados
  * `_Statistic.csv`: Conteos diarios de registros por tipo de contexto (Date, Context, Count, ComputerName)
  * `_PacketStatistic.csv`: Conteos diarios de PACKET por cliente/protocolo/dirección/tipo (Date, ClientIP, Protocol, Direction, QuestionType, Count, ComputerName)
  * Beneficio: Informes más enfocados (volumen de contexto operativo vs. desglose del tráfico DNS)
* La generación de JSON para bloques de detalle PACKET está optimizada para rendimiento (análisis manual en lugar de regex)

## Cambiado

* **CAMBIO IMPORTANTE**: La salida CSV ahora incluye 18 columnas (se añadió la columna `Details` antes de `ComputerName`)
  * Nuevo orden de columnas: DateTime, ThreadId, Context, PacketId, Protocol, Direction, ClientIP, Xid, Type, Opcode, FlagsHex, FlagsChar, ResponseCode, QuestionType, QuestionName, Information, **Details**, ComputerName
  * Impacto: Los scripts que dependen de posiciones de columna deben actualizarse
  * Beneficio: Capacidades avanzadas de análisis de paquetes sin cambiar el comportamiento existente de la columna Information
* El procesamiento de líneas de datos fue refactorizado para leer todas las líneas en memoria y detectar registros multilínea eficientemente
  * Rendimiento: Impacto mínimo gracias al uso optimizado de List<string>
  * Beneficio: Permite una anticipación precisa para bloques de detalle y líneas de continuación
* Los nombres de preguntas que faltan o están codificados como vacíos ahora se manejan sin errores de análisis; la salida CSV contendrá un campo QuestionName vacío cuando no esté presente

## Mejorado

* El análisis de `Convert-DNSDebugLogFile` es más resistente: validación más estricta de líneas y extracción mejorada reducen filas espurias/inválidas de registros malformados mientras se preserva el formato CSV/estadístico
* La detección del contexto PACKET distingue entre consultas simples y consultas con bloques de detalle
* Las líneas vacías después de entradas PACKET sin detalles se omiten correctamente
* La decodificación de nombres de dominio en bloques de detalle usa la función existente `ConvertTo-Fqdn` para mayor consistencia

## Rendimiento

* Velocidad de procesamiento mantenida para registros sin bloques de detalle
* El conmutador `NoDetailsParsing` ofrece una mejora de velocidad del 30-50% cuando no se necesita análisis JSON
* Gestión eficiente del estado durante el procesamiento de registros multilínea
* Operaciones de cadena optimizadas (TrimStart, Join) en lugar de regex para manejo de líneas de continuación

## Notas

* Estos cambios están diseñados para ser compatibles hacia atrás en el uso normal. Si dependes de un conjunto exacto de nombres de contexto o del comportamiento de análisis previamente estricto, valida tus scripts posteriores
* La nueva columna `Details` siempre está presente en la salida CSV; usa `NoDetailsParsing` para mantenerla vacía y mejorar el rendimiento
* Los scripts existentes que analizan CSV por posición de columna deben tener en cuenta la nueva columna `Details` (posición 17, antes de ComputerName)
