> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tokkoplugins.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Changelog

> Historial completo de cambios y actualizaciones de Tokko Plugins

Aquí encontrarás un historial completo de todas las actualizaciones, mejoras y correcciones de Tokko Plugins.

***

## v3.3.0 (19 de Abril, 2026)

<Note>
  Versión actual. El tab **Propiedades** se transformó en una consola operativa: lista paginada con sincronización selectiva, re-sync forzado de imágenes, diagnóstico en vivo y reporte por propiedad.
</Note>

### ✨ Nuevas Características

* **Tab "Propiedades" como consola operativa:** Tabla paginada con todas las propiedades de Tokko (ID, título, estado de sync, última acción, imágenes, fecha de última sync, acciones). Incluye búsqueda por título/ID/dirección, filtros por estado y acción, ordenamiento por columna y paginación. Reemplaza los widgets anteriores de "Propiedades por área" y "Análisis de precios" por herramientas operativas.
* **Sincronización selectiva por checkboxes:** Selector múltiple en la tabla con barra de acción flotante **Sincronizar seleccionadas (N)**. Crea una sesión de sync limitada a los IDs elegidos, respetando el lock global y reutilizando el motor unificado.
* **Sincronización por ID de Tokko:** Campo en la toolbar para pegar uno o más IDs de Tokko separados por coma y sincronizar solo esas propiedades sin tenerlas en la vista actual. Útil para troubleshooting de propiedades específicas reportadas por vendedores.
* **Re-sync forzado de imágenes:** Botón **Imágenes** en cada fila que marca la propiedad con `_thi_force_image_resync` y dispara un sync selectivo para esa propiedad. El siguiente sync borra las imágenes existentes y las vuelve a descargar.
* **Modal "Último reporte":** Acción por fila que abre el reporte completo de la última sincronización donde participó esa propiedad, sin tener que navegar al historial.
* **Diagnóstico "¿Por qué no veo esta propiedad?":** Acción por fila que verifica en vivo si la propiedad existe en Tokko, si está publicada en WordPress, si tiene imágenes, si está archivada y si tiene errores registrados. Devuelve un semáforo con hallazgos y un hint de próximo paso.
* **Link "Abrir en Tokko" con fallback "Copiar ID":** Si se configuró `tokkoBackofficeBase`, abre el detalle en el backoffice de Tokko. Si no, el botón se reemplaza por **Copiar ID** usando la Clipboard API.
* **KPI "Archivadas recientemente por Tokko":** Tarjeta con el conteo de propiedades archivadas por Tokko (`status=archived`) en los últimos 7 días. Permite detectar borrados masivos en Tokko que impacten el sitio.

***

## v3.2.0 (19 de Abril, 2026)

### ✨ Nuevas Características

* **Highlights mensuales en el email periódico:** Cuando la frecuencia del reporte por correo está en **Mensual**, el email incluye dos secciones nuevas:
  * **Resumen del mes:** peso promedio por imagen, total descargado en el período, ritmo diario promedio, imágenes y propiedades sincronizadas.
  * **Proyección:** estimación de consumo a 30, 90 y 365 días basada en el ritmo de descarga actual.
  * Si la frecuencia no es mensual, el correo sale igual que antes sin el bloque nuevo.
* **Bloque "Consumo y Proyección" en el dashboard:** El tab **Sincronización** muestra al final un bloque con cuatro tarjetas de los últimos 30 días (peso promedio por imagen, total descargado, ritmo diario, propiedades sincronizadas) y una tabla de proyección a 30, 90 y 365 días. Visible solo en licencias Pro/trial.
* **Indicador de confianza de la proyección:** Badge **Confianza: alta / media / baja** en el dashboard y aviso equivalente en el email. Basado en los días con actividad dentro de la ventana de 30 días (20+ alta, 7–19 días media, menos de 7 días baja).
* **Vista previa mensual real en "Probar correo":** Cuando la frecuencia es **Mensual**, el botón **Probar correo** envía una previsualización con datos reales del sitio en lugar de datos ficticios, para ver exactamente lo que vas a recibir.

### 🔧 Técnico

* Nueva agregación `THI_Sync_Report_Store::storage_summary()` con base UTC consistente.
* Filtro de estados por defecto: incluye `success`, `success_with_warnings` y `error`; excluye `aborted` y `cancelled`.
* Suite de regresión de 33 casos en `tests/test-storage-summary.php`.

***

## v3.1.0 (17 de Abril, 2026)

<Note>
  Versión enfocada en observabilidad: historial persistente de reportes y endurecimiento del lock de sincronización.
</Note>

### ✨ Nuevas Características

* **Historial persistente de reportes de sincronización:** Cada ejecución (manual o cron) se guarda en tablas MySQL propias (`thi_sync_reports` + `thi_sync_report_items`) con **30 días de retención**. Los reportes sobreviven recargas de página y pueden consultarse en cualquier momento.
* **Botón "Ver reporte" en el timeline:** Cada entrada de **Actividad Reciente** abre un modal con el reporte completo de esa sync: resumen de totales, estado general y detalle por propiedad.
* **Detalle por propiedad en el modal:** Para cada propiedad procesada se muestra la acción (nueva, actualizada, omitida, archivada, reactivada), estado, imágenes sincronizadas, MB descargados, advertencias, errores y enlaces al editor y a la URL pública.
* **Descarga CSV del reporte:** Cada reporte puede exportarse a CSV (UTF-8, separador coma) con el resumen general y el detalle por propiedad.
* **Captura de syncs canceladas y abortadas:** Al cancelar desde el panel o ante un error fatal que termina el proceso, el reporte parcial se persiste con el estado correcto en lugar de perderse.
* **Limpieza automática diaria:** Un evento de WP-Cron elimina cada día los reportes con más de 30 días de antigüedad, manteniendo la base de datos acotada.
* **Desinstalación limpia:** Al eliminar el plugin, las tablas de reportes se eliminan automáticamente.
* **Tracking de bytes descargados:** Se registran los MB de imágenes por propiedad y por sync, sentando la base de los highlights mensuales de v3.2.

### 🔧 Correcciones

* **Cancelar o pausar ya no libera el lock de otra sincronización:** El servidor verifica que la petición venga de la sesión dueña del lock.
* **Errores fatales no tumban locks ajenos:** El shutdown handler solo libera el lock si el error vino de la sesión que lo sostenía.
* **Cron sin cambios ya no deja el lock pegado:** Cuando el cron detecta que no hay propiedades nuevas ni actualizadas, el lock se libera correctamente al finalizar.
* **Adquisición atómica del lock:** El candado se adquiere atómicamente vía `wp_options` con UNIQUE en `option_name`.
* **Tiempos de expiración unificados a 5 minutos:** Umbral de stale, TTL del transient y abort del cliente ahora coinciden (antes había desfases que dejaban locks zombie hasta 10 minutos).
* **Syncs largas ya no son reclamables después de 5 minutos:** Cada heartbeat refresca también el mutex atómico.
* **Cron sin placeholder transitorio:** Se eliminó el `session_id='cron'` que podía confundir otros flujos durante la fase de detección.

***

## v3.0.1 (15 de Abril, 2026)

### 🔧 Correcciones

* **Propiedades con imágenes faltantes tras syncs interrumpidas:** Si una sincronización larga se corta después de crear o actualizar la propiedad pero antes de terminar sus imágenes, la siguiente sync vuelve a detectar esa propiedad y descarga las fotos pendientes en lugar de marcarla como "sin cambios".
* **Historial de sync ya no muestra éxito en resultados parciales:** Las syncs con errores o cierre parcial ya no quedan registradas como exitosas ni actualizan la fecha de última sincronización correcta.
* **Sesión de datos más robusta:** Fallback seguro entre archivo y transient para reducir errores `session_expired` cuando el payload no puede persistirse.

### 🔧 Técnico

* Estados de timestamp más precisos: las propiedades permanecen en `pending` o `error` mientras queden imágenes o fallos de media, y sólo pasan a `synced` cuando todo termina completo.
* Verificación local de media incompleta comparando `fave_image_urls` con `fave_property_images`.

***

## v3.0.0 (10 de Marzo, 2026)

<Note>
  Reescritura completa del motor de sincronización y salto importante de la versión Free (100 propiedades, mapas y URLs personalizadas).
</Note>

### ✨ Nuevas Características

* **Motor de Sincronización Unificado:** Reescrito desde cero con procesamiento por lotes basado en AJAX
  * Progreso en tiempo real
  * Pausa/Reanuda/Cancela sincronización
  * Manejo inteligente de errores con circuit breakers

* **Búsqueda Multi-campo Mejorada:**
  * Búsqueda por palabra clave avanzada
  * Filtros simultáneos
  * Mejor rendimiento en sitios grandes

* **Controles de Búsqueda Nuevos:**
  * Slider de rango de edad de propiedad
  * Selector múltiple de cantidades (cuartos, baños, garajes)
  * Filtros encadenados (cada selección afina más)

* **Auto-asignar Agentes:**
  * Asigna automáticamente agentes a nuevas propiedades
  * Basado en región, tipo de propiedad o disponibilidad
  * Reduce trabajo manual de administración

* **Informe de Sincronización Detallado:**
  * Detalles por propiedad
  * Historial de cambios
  * Identificación de problemas específicos
  * Exportable a CSV

* **Sincronización de Desarrollos (Emprendimientos):**
  * Sincronización de desarrollos como entidad separada
  * Gestión de lotes/unidades
  * Galería de imágenes del proyecto
  * Disponible en todos los planes

* **Indicadores de Salud del Sistema:**
  * Monitoreo en tiempo real de memoria (85%/95%)
  * Monitoreo de CPU (1.2x/2.0x)
  * Monitoreo de espacio en disco (5GB/1GB)
  * Alertas y recomendaciones automáticas

* **Sincronización Inteligente (Smart Sync):**
  * Detecta cambios mediante timestamps
  * Solo procesa propiedades modificadas
  * Sincronizaciones 10x más rápidas
  * Tabla dedicada: wp\_thi\_property\_timestamps

* **Modo Desarrollo (Dev Mode):**
  * Prueba con archivos JSON locales
  * No requiere conexión a Tokko Broker
  * Perfecto para testing y desarrollo

* **Dashboard Moderno:**
  * Interfaz con tarjetas (cards)
  * Iconos SVG modernos
  * Diseño responsive
  * Mejor usabilidad en móvil

### 🎯 Plan Starter Mejorado

* **Límite de propiedades aumentado:** De 20 → **100 propiedades**
* **Mapas y geolocalización:** Ahora **incluidos gratis** (antes era premium)
* **URLs personalizadas:** Incluidas en plan gratis
* **Auto-archivado:** Disponible para todos los usuarios

### 🚀 Mejoras de Rendimiento

* **Circuit Breakers para Errores:**
  * Detiene sincronización después de 5+ errores de API
  * Pausa después de 10+ fallos de descarga de imágenes
  * Evita bloqueos de servidor

* **Procesamiento de Imágenes:**
  * Lotes de 10 imágenes (antes: 5)
  * GD preferido sobre Imagick (mejor compatibilidad)
  * Normalización de imágenes (corrige extensiones truncadas)
  * Mejor manejo de URLs malformadas

* **Optimización de Memoria:**
  * Liberación agresiva de variables temporales
  * Caché inteligente de metadatos
  * Monitoreo proactivo de límites

### 🔧 Correcciones

* **FIX:** Búsqueda numérica ya no genera coincidencias parciales
* **FIX:** El archivado de desarrollos no afecta a las propiedades asociadas
* **FIX:** Sincronización de imágenes con URLs truncadas (ej: .jp en lugar de .jpg)
* **FIX:** Timeout de ejecución en sincronización de propiedades grandes
* **FIX:** Caché de navegador causaba datos desactualizados después de sincronizar
* **FIX:** Permalinks rotos después de cambiar URLs personalizadas

### 📊 Cambios en la Plataforma

| Característica             | Antes   | Ahora               |
| -------------------------- | ------- | ------------------- |
| Plan Starter - Propiedades | 20      | 100                 |
| Mapas/Geolocalización      | Premium | Gratis              |
| Sincronización Inteligente | No      | Sí                  |
| Circuit Breakers           | No      | Sí                  |
| Informe de Sincronización  | Básico  | Detallado           |
| Dashboard                  | Antiguo | Moderno (v3 design) |

***

## v2.8.1 (15 de Enero, 2026)

<Info>
  Versión de mantenimiento. Recomendamos actualizar a v3.0.0 para nuevas características.
</Info>

### 🔧 Correcciones

* FIX: Error de conexión en ciertos servidores con cURL desactualizado
* FIX: Las propiedades no aparecían si el título tenía caracteres especiales
* FIX: Problema con el mapeo de campos cuando faltaba información en Tokko
* FIX: Incompatibilidad parcial con PHP 8.2

### 📈 Mejoras Menores

* Mejorada velocidad de carga del dashboard
* Mejor detección de timeout de red
* Logging más detallado para debugging

***

## v2.7.0 (20 de Octubre, 2025)

### ✨ Nuevas Características

* Soporte para formularios de contacto mejorado
* Envío de leads a CRM (Premium+)
* Exportación de reporte de errores a CSV
* Dashboard de analítica básica

### 🔧 Correcciones

* FIX: Los agentes sincronizados no aparecían correctamente
* FIX: Problema con URLs personalizadas en algunas configuraciones de hosting
* FIX: Las imágenes no se descargaban en algunos casos de red lenta

***

## v2.6.0 (12 de Junio, 2025)

### ✨ Nuevas Características

* Sincronización de desarrollos (fase inicial)
* Búsqueda por ubicación mejorada
* Filtro por estado de propiedad

### 🔧 Correcciones

* FIX: Memoria excesiva en sincronización de sitios grandes
* FIX: Problema con timezone en timestamps de propiedades
* FIX: Inconsistencia en precios con múltiples monedas

***

## v2.5.0 (20 de Marzo, 2025)

### ✨ Nuevas Características

* Soporte WPML (traducción multi-idioma) - parcial
* Auto-archivado de propiedades inactivas
* Búsqueda avanzada por rango de precio
* Galerías de imágenes mejoradas

### 🔧 Correcciones

* FIX: Error 404 en páginas de propiedades
* FIX: Las imágenes no se ordenaban correctamente
* FIX: Problema con Elementor en algunos widgets

***

## v2.4.0 (5 de Diciembre, 2024)

### ✨ Nuevas Características

* Mapas interactivos con geolocalización
* Sincronización de agentes inmobiliarios
* URLs personalizadas para propiedades
* Sistema de reporte de errores

### 🔧 Correcciones

* FIX: Problemas de rendimiento en sitios con 500+ propiedades
* FIX: Compatibilidad mejorada con temas modificados
* FIX: Error en la sincronización de propiedades duplicadas

***

## v2.3.0 (1 de Septiembre, 2024)

### ✨ Nuevas Características

* Dashboard con estadísticas de sincronización
* Historial de errores con búsqueda
* Configuración granular de campos
* Soporte para Elementor widgets

### 🔧 Correcciones

* FIX: Crash al sincronizar más de 200 propiedades
* FIX: Problema con descriptores de archivo abiertos

***

## v2.2.0 (15 de Mayo, 2024)

### ✨ Nuevas Características

* Búsqueda de propiedades por palabra clave
* Filtros de búsqueda básicos
* Página de configuración mejorada

### 🔧 Correcciones

* FIX: API Key validation mejorada
* FIX: Problema con imagenes corrupted

***

## v2.1.0 (10 de Febrero, 2024)

### ✨ Nuevas Características

* Sincronización automática de propiedades
* Descarga de imágenes
* Soporte básico de desarrollos

### 🔧 Correcciones

* FIX: Conexión inicial a Tokko Broker
* FIX: Problema con permisos de archivo

***

## v2.0.0 (1 de Noviembre, 2023)

<Warning>
  Esta versión está deprecada. Actualiza a v3.0.0 lo antes posible.
</Warning>

### ✨ Características Principales

* Primera versión pública
* Integración básica con Tokko Broker
* Sincronización de propiedades
* Soporte Houzez
* Sistema de licencias Freemius

***

## Plan de Actualización Recomendado

```
v2.x → v3.3.0 (RECOMENDADO)
```

**Ventajas de mantenerte en la rama 3.x:**

* Motor de sincronización unificado con procesamiento por lotes y heartbeat.
* Consola operativa de Propiedades con sync selectiva y diagnóstico en vivo (v3.3).
* Historial persistente de reportes con exportación CSV y 30 días de retención (v3.1).
* Highlights mensuales de consumo y proyección de storage en dashboard y email (v3.2).
* Plan Starter mejorado: 100 propiedades, mapas y URLs personalizadas incluidos gratis (v3.0).

**Compatibilidad:** La actualización es 100% compatible. Todos tus datos se preservan; las tablas nuevas de reportes se crean al activar y se eliminan limpiamente al desinstalar.

***

## Política de Soporte de Versiones

* **v3.3.x:** Soporte completo (actual).
* **v3.0 – v3.2:** Actualizaciones de seguridad y correcciones críticas.
* **v2.8 – v2.12:** Sólo actualizaciones de seguridad.
* **v2.0 – v2.7:** Sin soporte activo.

<Note>
  Recomendamos mantener el plugin actualizado a la última versión para obtener nuevas características, mejoras de seguridad y correcciones de bugs.
</Note>

***

## Cómo Actualizar

1. Ve a **Plugins > Plugins Instalados** en WordPress
2. Busca "Tokko Plugins"
3. Si hay una actualización disponible, verás un botón "Actualizar Ahora"
4. Haz clic y espera a que se complete
5. Verifica que todo funcione correctamente

**Respaldo:** Se recomienda hacer un respaldo antes de actualizar.

***

## Historial de Cambios Futuro

Estamos trabajando en:

* **v3.4.x:** Panel de notificaciones dentro del plugin (además del email) y filtros avanzados en el tab Propiedades.
* **v3.5.x:** Webhooks desde Tokko hacia el sitio para disparar syncs sin depender de WP-Cron.
* **v4.0.0:** Rediseño del flujo de onboarding y utilidades de migración entre cuentas de Tokko Broker.

Mantente atento a las nuevas versiones en tu WordPress.
