{"current_version":"dev","deploy_date":"development","changelog_content":"# \ud83d\udccb Changelog - ScanFactura\n\n## [1.3.0] - 2025-08-14\n\n### \u2728 Nuevas caracter\u00edsticas\n- Cliente de API central habilitado (CentralApiClient): autenticaci\u00f3n, env\u00edo de facturas y modo mock para desarrollo; activado el 2025-08-13.\n- Notificaciones de usuario con Livewire Toaster junto a eventos de Livewire (ambos coexistiendo para mejor UX y compatibilidad con pruebas).\n\n### \ud83d\udd27 Mejoras t\u00e9cnicas\n- Livewire InvoiceList \u2192 sincronizaci\u00f3n refactorizada: ahora carga la factura directamente desde la base de datos (Eloquent) durante la sincronizaci\u00f3n para evitar dependencias de mock del repositorio en tests.\n- Correcci\u00f3n de la forma de despachar eventos en Livewire: par\u00e1metros enviados como arreglo asociativo para coincidir con assertDispatched de Livewire 3.\n- Registro y manejo de errores m\u00e1s robusto en la sincronizaci\u00f3n (logs de inicio\/fin, HTTP no exitoso y excepciones con trace) y restablecimiento de estados UI (synchronizing, synchronizingId).\n- CentralApiClient: mejora de mensajes en errores HTTP (p. ej. 422) extrayendo `message` y `errores` del JSON cuando existen, y fallback descriptivo si el body viene vac\u00edo.\n- Preventivo: se a\u00f1ade bandera de configuraci\u00f3n para randomizar el n\u00famero de factura enviado a la API externa (`invoice.central_api.random_invoice_number` controlado por `CENTRAL_API_RANDOM_INVOICE_NUMBER`), por defecto desactivado. Activarlo en producci\u00f3n mientras la API externa rechaza n\u00fameros repetidos.\n- Deploy: durante el deploy se ejecuta autom\u00e1ticamente `php artisan migrate --force` en el servidor para aplicar migraciones.\n\n### \ud83d\udc1b Correcciones\n- Se elimina el estado \"risky\" en pruebas: el test de \"refreshes list after successful synchronization\" ahora valida que el repositorio se invoque dos veces tras sincronizar.\n- PSR-4 en tests: JsonSanitizerTest.php ahora usa el namespace `Tests` para cumplir con autoload-dev (warning de Composer resuelto).\n- Toaster no visible en frontend: se a\u00f1adi\u00f3 el path del paquete `masmerise\/livewire-toaster` a la lista de fuentes de Tailwind (`resources\/css\/app.css`) para evitar que el purge elimine las clases de los toasts. Ahora los toasts se muestran correctamente cuando se despachan desde el servidor.\n\n### \ud83e\uddea Estado de pruebas y calidad\n- \u2705 294 tests pasando\n- \u2705 1185 assertions exitosas\n- \u2705 Sin warnings de Composer (PSR-4) en autoload-dev\n\n---\n\n## [1.2.0] - 2025-08-03\n\n### \u2728 Nuevas caracter\u00edsticas\n- **Lista de facturas activa**: Se activ\u00f3 completamente la funcionalidad \"Facturas Recientes\" que antes mostraba \"Pr\u00f3ximamente\"\n- **Modal de detalles mejorado**: Visualizaci\u00f3n completa de productos y totales de facturas procesadas\n- **Modal de imagen**: Funcionalidad para ver la imagen original de cada factura escaneada\n- **Auto-sincronizaci\u00f3n**: La lista se actualiza autom\u00e1ticamente cuando se procesa una nueva factura\n\n### \ud83d\udd27 Mejoras t\u00e9cnicas\n- **Precisi\u00f3n decimal mejorada**: Aumentada de 2 a 3 decimales para mayor exactitud en totales (301.725 vs 302)\n- **Sistema de estados con enum**: Implementado `InvoiceStatusEnum` con traducciones al espa\u00f1ol y iconos\n- **Consistencia en formatos**: Unificaci\u00f3n de formatos de moneda en toda la aplicaci\u00f3n\n\n### \ud83d\udc1b Correcciones\n- **Error JavaScript solucionado**: Conflicto de nombres en `showImageModal` que causaba errores en el frontend\n- **Discrepancia en totales**: Corregida inconsistencia entre listado y detalle de facturas\n- **Tests corregidos**: 256 tests pasando (100% de cobertura)\n\n### \ud83d\udd04 Deploy y versionado\n- **Sistema de versi\u00f3n autom\u00e1tico**: Implementado en footer con hash de commit y fecha de deploy\n- **Deploy mejorado**: Corregido el flujo para generar versiones correctas en producci\u00f3n\n\n### \ud83d\udcca Estado t\u00e9cnico\n- \u2705 256 tests pasando\n- \u2705 954 assertions exitosas  \n- \u2705 0 errores de linting\n- \u2705 Deploy autom\u00e1tico funcionando\n- \u2705 Precisi\u00f3n decimal completa\n\n---\n\n## [1.1.0] - Hist\u00f3rico (Pre-tracking)\n\n### Funcionalidades base\n- Sistema de OCR con AWS Bedrock\n- Procesamiento de facturas con IA\n- Base de datos con modelos de Invoice y InvoiceDetail\n- API REST completa\n- Autenticaci\u00f3n y autorizaci\u00f3n\n- Sistema de tokens y costos\n- Interfaz de usuario con Livewire y Tailwind CSS\n","recent_commits":[{"hash":"ea7397f","message":"fix(ui): Ensure Toaster notifications are visible in frontend","author":"Luis Manuel Zu\u00f1iga Moreno","date":"2025-08-14"},{"hash":"51e3987","message":"feat(api): Add configuration flag to randomize invoice numbers sent to Central API","author":"Luis Manuel Zu\u00f1iga Moreno","date":"2025-08-14"},{"hash":"d071599","message":"Merge pull request #19 from dvloper-mnt\/development","author":"Luis Manuel Zu\u00f1iga Moreno","date":"2025-08-14"},{"hash":"f16c1f9","message":"feat(sync): Add support for Toaster notifications in invoice synchronization error handling","author":"Luis Manuel Zu\u00f1iga Moreno","date":"2025-08-14"},{"hash":"c15194b","message":"Merge pull request #18 from dvloper-mnt\/development","author":"Luis Manuel Zu\u00f1iga Moreno","date":"2025-08-14"},{"hash":"005a77b","message":"Merge branch 'main' into development","author":"Luis Manuel Zu\u00f1iga Moreno","date":"2025-08-14"},{"hash":"6386590","message":"chore: Standardize code formatting, improve error handling, and automate migrations in deploy","author":"Luis Manuel Zu\u00f1iga Moreno","date":"2025-08-14"},{"hash":"6d6745b","message":"Merge pull request #17 from dvloper-mnt\/main","author":"Luis Manuel Zu\u00f1iga Moreno","date":"2025-08-14"},{"hash":"87004a5","message":"feat(sync): Refactor invoice synchronization logic and enhance test coverage","author":"Luis Manuel Zu\u00f1iga Moreno","date":"2025-08-14"},{"hash":"05fa66c","message":"chore(workflow): Reorder steps in deploy workflow for better dependency resolution","author":"Luis Manuel Zu\u00f1iga Moreno","date":"2025-08-14"}],"generated_at":"2026-05-18T21:48:56.369733Z"}