Laravel publicó la versión 13.37.0 del framework el 16 de octubre para la rama 13.x. La actualización corrige una condición de carrera en los trabajos que combinan onOneServer() con withoutOverlapping(). Las pruebas del limitador respetan ahora un Sleep simulado al calcular los tiempos de espera de block().

getForeignKeys() ofrece un mejor rendimiento en servidores MariaDB y MySQL con muchas bases de datos. Eloquent corrige has() y withCount() en relaciones one-of-many autorreferenciadas. Las consultas de existencia HasOneThrough one-of-many autorreferenciadas utilizan ahora el alias de la tabla intermedia. También se corrigen los tipos de colección de whereBelongsTo() y whereAttachedTo().

Eloquent cursor() evita crear instancias de modelo innecesarias. Las relaciones JSON:API anidadas ya no generan consultas N+1. incrementOrCreate() funciona correctamente en relaciones through. restore() funciona con consultas de borrado lógico que usan joins. Eloquent Collection findOrFail() procesa correctamente una instancia de modelo. Los accessors Attribute almacenados en caché ya no devuelven valores obsoletos después de modificar un atributo.

Los callbacks de withWhereHas() pueden seleccionar columnas. Las consultas con joins califican la columna predeterminada de latest() y oldest(). Las columnas de atributos de las relaciones through se califican en firstOrNew() y firstOrCreate(). La misma corrección se aplica a createOrFirst(). Los atributos de recursos JSON:API gestionan ahora correctamente mergeWhen().

El sistema de colas libera un bloqueo único cuando falla el envío de un trabajo. Los bloqueos de listeners encolados se liberan después de un envío fallido. Queue::fake() también libera los bloqueos únicos de esos listeners. queue:failed acepta la nueva opción --queue. queue:forget admite varios identificadores. ScheduledTaskFailed incluye ahora el tiempo de ejecución.

Los discos FTP y SFTP incorporan la opción detect_mime_type_using_path. La Image API admite JPEG XL (JXL). RedirectResponse puede implementar Responsable. InvokableComponentVariable recibe un tipo de retorno genérico.

Rule::numeric() añade una opción strict. Rule::when() y Rule::unless() aceptan Stringable en sus tipos de parámetros. Los casts cifrados de objetos y colecciones ya no permanecen marcados incorrectamente como modificados. DynamoDbStore::many() devuelve ahora los valores bajo las claves correctas cuando son numéricas.

Las migraciones omitidas ya no aparecen como pendientes en migrate:status. Se suprimen las advertencias de desmontaje al desconectar conexiones muertas. La actualización también mejora el registro de excepciones.