v1.11.0

28 de agosto de 2026

Esta versión añade estimaciones de tiempo de finalización de HowLongToBeat a la vista de detalle del juego y refuerza los efectos Holo de las tarjetas para bibliotecas grandes: se corrige un interbloqueo en la caché de máscaras, todas las cachés Holo tienen límite LRU, y el desmontaje de WebKit es asíncrono y con rebote temporal, por lo que ya no congela la cuadrícula durante el desplazamiento. Desplazarse por una colección Holo de más de 50 tarjetas ahora es fluido. El asistente de configuración incorpora una vista previa Holo nativa en vivo que coincide con el efecto en la app, gestión de biblioteca con varias carpetas y reconciliación de eliminaciones, y un selector de región más nítido.

Nota: Los efectos Holo siguen en fase de pruebas beta. Son experimentales y podrían cambiar o refinarse en futuras versiones.

Destacados

  • Tiempos de finalización de HowLongToBeat: La vista de detalle del juego muestra estimaciones Principal, Principal + Extras y Completista de HowLongToBeat, con coincidencia automática para ROMs con título y una hoja de búsqueda para selección manual.
  • Pase de rendimiento Holo: La descomposición de máscaras Holo solo se ejecuta en el hover real, HoloSaliencyService ahora está protegido por un único lock (corrige un interbloqueo durante el desplazamiento), y todas las cachés Holo tienen límite LRU.
  • Desplazamiento más fluido en la cuadrícula Holo: El estado de desplazamiento de la biblioteca solo se republica en cambios reales, las tarjetas ya no observan el servicio global de saliencia, y el desmontaje de WebKit es asíncrono y con rebote temporal para no interrumpir el gesto de desplazamiento.
  • Asistente de configuración v2: Una HoloPreviewCard nativa en vivo en el selector de región, gestión de biblioteca con varias carpetas y reconciliación con la base de datos, bezel movido a Funcionalidades Opcionales, y un selector de región más nítido basado en Zelda OoT.

Cambios detallados

  • Integración de HowLongToBeat — ROMMetadataEntry gana campos HLTB (ID del juego, título coincidente, estimaciones de tiempo de finalización), HLTBWebSearchSheet para selección manual, HowLongToBeatCard con coincidencia automática y manual, e integración en la vista general de detalle del juego.
  • Corrección de interbloqueo en la saliencia Holo — HoloSaliencyService ahora usa un único OSAllocatedUnfairLock para las entradas y el orden LRU; el diseño previo con dos locks podía interbloquearse durante el desplazamiento.
  • Cachés Holo con LRU — HoloFoilTileCache (32), HoloPatternStore (64/32/32), HoloSaliencyService (100), HoloBumpRenderer (16); DetailBoxArtComponents cuantiza los tamaños de renderizado a cubos de 0.5pt para evitar la fragmentación.
  • Correcciones de retardo de desplazamiento Holo — LibraryScrollState.isScrolling solo se republica en cambios reales; HoloGameCardView ya no observa HoloSaliencyService (cada tarjeta usa @State local para su propio progreso); la descomposición de máscaras se activa con un disparador de hover para no ejecutarse en todas las tarjetas visibles.
  • HoloWebCardView — WKWebView solo se crea cuando isActive es verdadero; el desmontaje usa un scheduleUnmount con rebote temporal (0.35s, cancelable al volver a pasar el cursor) más un deinit totalmente asíncrono; todas las vistas web de las tarjetas comparten un único WKProcessPool; loadKey usa cubos de cuadro cuantizados a 0.5pt para detener las recargas constantes.
  • HoloFoilLayers — enmascarado por luminancia para un efecto metálico más preciso.
  • Asistente — HoloPreviewCard ahora usa el pipeline nativo HoloFoilLayers + HoloSheenEffect + HoloScratchLayer, consciente de la relación de aspecto y del hover; máscaras de héroe preempaquetadas para el selector de región; lista de biblioteca con varias carpetas y reconciliación con la base de datos; bezel movido a Funcionalidades Opcionales.
  • BoxArt — BoxArtLayers ya no resta el título del blob del héroe (la pista de título eliminaba una muesca con forma de título a resolución completa); el selector de región del asistente usa muestras de Zelda OoT US/EU/JP para ejercitar la variación de relación de aspecto.
  • Localización — tiempo total de juego, partidas, última partida y logros traducidos en en/es/pt/ja; entradas de funcionalidad de bezel localizadas; nuevas traducciones Holo.
  • GameListRowView — se añade la acción onPlay para iniciar juegos.
  • GameCardView — escalado de imagen cambiado de scaledToFit a scaledToFill con recorte para una presentación más ceñida de la carátula.
  • Versión de marketing subida a 1.11.0 y número de compilación a 34 en project.yml, ambos Info.plist y docs/_config.yml.