v1.8.3
Versión de parche que corrige dos regresiones — fallos silenciosos al borrar estados de guardado y notificaciones falsas de actualización en la versión actual — más una pasada de fiabilidad de carga de juegos en Modo TV y una limpieza amplia de avisos de Swift 6.
Destacados
- Borrar estados de guardado vuelve a funcionar: Los manejadores de borrado en
ModernSaveStateSlotViewy en el menú contextual de miniatura progresiva construyen ahora la misma clave compuestadisplayName__que usa la ruta de guardado (#27). - Sin avisos falsos de actualización en la versión actual: La disponibilidad de actualización en
AppUpdateServiceya no se condiciona a#if LOG_DEBUG, así que las instalaciones limpias ya no se reportan como desactualizadas (#25). - Fiabilidad del Modo TV: Se refactorizó la inicialización de la biblioteca para que los juegos se carguen de forma determinista en Modo TV, y entrar en Modo TV dispara ahora una pasada de entrada a pantalla completa para mantener el mando enfocado.
- Limpieza de avisos de Swift 6: Eliminados ~20 avisos de aislamiento de actores, bindings no usados y APIs deprecadas para mantener el log de build accionable.
Cambios detallados
- Corregidos los manejadores de borrado para usar la clave compuesta
displayName__— verBaseRunner.swift:1150yGameDetailView.swift:426para la ruta de guardado canónica (Corrige #27) - Eliminado el condicionamiento
#if LOG_DEBUGde la disponibilidad de actualización enAppUpdateService; la ruta de comparación real ahora se ejecuta siempre (Corrige #25) - Refactorizada la inicialización de la biblioteca de ROMs para que los juegos se carguen en Modo TV en lugar de depender de efectos laterales
- Añadida lógica de entrada a pantalla completa al activar el Modo TV para que la ventana activa tome foco en la transición
- Actualizadas las configuraciones de build y banderas de log para documentar el alcance de
LOG_DEBUG/LOG_EXTREME - Añadido log de depuración para operaciones de máquina del tiempo y otros componentes
- Limpieza de avisos de Swift 6:
awaitredundante en llamadas síncronas, bindingssystem/port/existingno usados,onChange(of:perform:)deprecado de un solo parámetro, argumentos por defecto con aislamiento de actores, y cuerpos de trailing-closure ambiguos - Revisados los enlaces de assets y recortadas secciones obsoletas en
README.md