El equipo de Laravel publicó la versión v13.31.0 el 8 de septiembre de 2026. Las novedades principales son un método Queue::totalSize() y un nuevo evento JobInterrupted.

terminal
use Illuminate\Queue\Events\JobInterrupted;

Event::listen(JobInterrupted::class, function (JobInterrupted $event) {
    // Handle the job interruption
});

Jack Bayliss contribuyó totalSize(), que devuelve el número total de jobs en una conexión de cola con una sola llamada. Antes había que sumar manualmente totalPendingSize(), totalDelayedSize() y totalReservedSize(). El pull request es el #61373.

Bayliss también añadió el evento JobInterrupted en la PR #61412. Se dispara cuando un worker interrumpe un job que implementa el contrato Interruptible, lo que permite enganchar limpieza o registro. Otro cambio del mismo colaborador añade los nombres de conexión y cola al evento WorkerStopping existente cuando se mata un worker.

Caleb White incorporó soporte chaperone para los modelos pivot BelongsToMany en la PR #61152. Llamar a chaperone() en una relación belongsToMany permite a un modelo pivot personalizado resolver sus relaciones BelongsTo a partir de los modelos ya hidratados durante la carga, sin consultas adicionales. Sin un modelo pivot personalizado, la llamada no hace nada. Los nombres de relación se deducen automáticamente, pero pueden sobrescribirse con los argumentos declaring y related.

La clase Vite gana un método devServerUrl() gracias a ramonmalcolm10, útil para generar URLs de assets contra el servidor de desarrollo. Los fakes de Mail y Notification reciben aserciones once de talaridisTh: assertSentOnce() y assertQueuedOnce() para Mail, además de assertSentToOnce() y assertSentOnDemandOnce() para Notification, en sustitución del patrón assertSentTimes(..., 1).

El changelog incluye además correcciones destacadas. Orrison hizo el driver de colas Redis seguro para clústeres y añadió reintentos en phpredis ante reinicios de conexión. Se corrigió una fuga de memoria en el cliente HTTP. Otras correcciones afectan a lazy() y lazyById(), que ignoraban limit() y offset(), a la propagación de contexto a procesos concurrentes, al ámbito de closures de wherePivot(), a los atributos UsePolicy y UseEloquentBuilder, que ahora se resuelven desde clases padre, y al método create_sid() que faltaba en ArraySessionHandler de cara a PHP 9.0. El diff completo entre v13.30.1 y v13.31.0 está en GitHub.