📋 Changelog - ScanFactura

Registro de cambios y mejoras del sistema

Versión Actual: dev
Último deploy: development

📋 Changelog - ScanFactura

[1.3.0] - 2025-08-14

✨ Nuevas características

  • Cliente de API central habilitado (CentralApiClient): autenticación, envío de facturas y modo mock para desarrollo; activado el 2025-08-13.
  • Notificaciones de usuario con Livewire Toaster junto a eventos de Livewire (ambos coexistiendo para mejor UX y compatibilidad con pruebas).

🔧 Mejoras técnicas

  • Livewire InvoiceList → sincronización refactorizada: ahora carga la factura directamente desde la base de datos (Eloquent) durante la sincronización para evitar dependencias de mock del repositorio en tests.
  • Corrección de la forma de despachar eventos en Livewire: parámetros enviados como arreglo asociativo para coincidir con assertDispatched de Livewire 3.
  • Registro y manejo de errores más robusto en la sincronización (logs de inicio/fin, HTTP no exitoso y excepciones con trace) y restablecimiento de estados UI (synchronizing, synchronizingId).
  • 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ío.
  • Preventivo: se añade bandera de configuración para randomizar el número 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ón mientras la API externa rechaza números repetidos.
  • Deploy: durante el deploy se ejecuta automáticamente php artisan migrate --force en el servidor para aplicar migraciones.

🐛 Correcciones

  • 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.
  • PSR-4 en tests: JsonSanitizerTest.php ahora usa el namespace Tests para cumplir con autoload-dev (warning de Composer resuelto).
  • Toaster no visible en frontend: se añadió 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.

🧪 Estado de pruebas y calidad

  • ✅ 294 tests pasando
  • ✅ 1185 assertions exitosas
  • ✅ Sin warnings de Composer (PSR-4) en autoload-dev

[1.2.0] - 2025-08-03

✨ Nuevas características

  • Lista de facturas activa: Se activó completamente la funcionalidad "Facturas Recientes" que antes mostraba "Próximamente"
  • Modal de detalles mejorado: Visualización completa de productos y totales de facturas procesadas
  • Modal de imagen: Funcionalidad para ver la imagen original de cada factura escaneada
  • Auto-sincronización: La lista se actualiza automáticamente cuando se procesa una nueva factura

🔧 Mejoras técnicas

  • Precisión decimal mejorada: Aumentada de 2 a 3 decimales para mayor exactitud en totales (301.725 vs 302)
  • Sistema de estados con enum: Implementado InvoiceStatusEnum con traducciones al español y iconos
  • Consistencia en formatos: Unificación de formatos de moneda en toda la aplicación

🐛 Correcciones

  • Error JavaScript solucionado: Conflicto de nombres en showImageModal que causaba errores en el frontend
  • Discrepancia en totales: Corregida inconsistencia entre listado y detalle de facturas
  • Tests corregidos: 256 tests pasando (100% de cobertura)

🔄 Deploy y versionado

  • Sistema de versión automático: Implementado en footer con hash de commit y fecha de deploy
  • Deploy mejorado: Corregido el flujo para generar versiones correctas en producción

📊 Estado técnico

  • ✅ 256 tests pasando
  • ✅ 954 assertions exitosas
  • ✅ 0 errores de linting
  • ✅ Deploy automático funcionando
  • ✅ Precisión decimal completa

[1.1.0] - Histórico (Pre-tracking)

Funcionalidades base

  • Sistema de OCR con AWS Bedrock
  • Procesamiento de facturas con IA
  • Base de datos con modelos de Invoice y InvoiceDetail
  • API REST completa
  • Autenticación y autorización
  • Sistema de tokens y costos
  • Interfaz de usuario con Livewire y Tailwind CSS

🔄 Commits Recientes

ea7397f 2025-08-14

fix(ui): Ensure Toaster notifications are visible in frontend

Por: Luis Manuel Zuñiga Moreno

51e3987 2025-08-14

feat(api): Add configuration flag to randomize invoice numbers sent to Central API

Por: Luis Manuel Zuñiga Moreno

d071599 2025-08-14

Merge pull request #19 from dvloper-mnt/development

Por: Luis Manuel Zuñiga Moreno

f16c1f9 2025-08-14

feat(sync): Add support for Toaster notifications in invoice synchronization error handling

Por: Luis Manuel Zuñiga Moreno

c15194b 2025-08-14

Merge pull request #18 from dvloper-mnt/development

Por: Luis Manuel Zuñiga Moreno

005a77b 2025-08-14

Merge branch 'main' into development

Por: Luis Manuel Zuñiga Moreno

6386590 2025-08-14

chore: Standardize code formatting, improve error handling, and automate migrations in deploy

Por: Luis Manuel Zuñiga Moreno

6d6745b 2025-08-14

Merge pull request #17 from dvloper-mnt/main

Por: Luis Manuel Zuñiga Moreno

87004a5 2025-08-14

feat(sync): Refactor invoice synchronization logic and enhance test coverage

Por: Luis Manuel Zuñiga Moreno

05fa66c 2025-08-14

chore(workflow): Reorder steps in deploy workflow for better dependency resolution

Por: Luis Manuel Zuñiga Moreno

📅 Generado automáticamente el 18/01/2026 21:31:32

🤖 Sistema de versionado automático de ScanFactura