Laravel Open Source Changelog (August 2026)
New updates and improvements to Laravel's open source products.
Laravel Framework 13.x
A Laravel Cloud Facade for Managed Queues
Pull request by @jackbayliss
Laravel now provides an Illuminate\Support\Facades\Cloud facade for inspecting Laravel Cloud at runtime. Cloud::hosted() determines whether the application is hosted on Laravel Cloud, Cloud::usesManagedQueues() detects the managed queue connection, and Cloud::queue() gives access to that connection when configured.
Read-Through Filesystems
Pull request by @taylorotwell
Laravel now includes a read-through filesystem driver for gradually migrating files between disks. It checks the primary disk first; when a file exists only on the fallback disk, Laravel returns it and copies it to the primary disk for future requests. Writes and directory listings continue to target the primary disk, while streamed reads are supported without loading the entire file into memory.
'assets' => [
'driver' => 'read-through',
'primary' => 'r2',
'fallback' => 'legacy-s3',
],Portable Eloquent Vector Casts
Pull request by @eas4ai
Laravel now provides the AsVector Eloquent cast for working with vector columns as arrays of floats. The cast handles MariaDB's binary vector representation as well as PostgreSQL-compatible text values, accepts arrays and Arrayable objects when storing vectors, and correctly converts query bindings for MariaDB vector distance functions.
use Illuminate\Database\Eloquent\Casts\AsVector;
class Document extends Model
{
protected $casts = [
'embedding' => AsVector::class,
];
}MariaDB Vector Distance Queries
Pull request by @Rhaima96
Laravel's vector query methods now support MariaDB's native vector capabilities. Methods such as whereVectorSimilarTo, whereVectorDistanceLessThan, orderByVectorDistance, and selectVectorDistance compile to MariaDB's vector distance functions, bringing the same expressive query API previously available for PostgreSQL to supported MariaDB releases.
$documents = Document::query()
->whereVectorSimilarTo('embedding', $queryEmbedding)
->orderByVectorDistance('embedding', $queryEmbedding)
->get();Automatically Retry Safe Redis Commands
Pull request by @taylorotwell
PhpRedis connections now automatically reconnect and retry safe commands following transient connection failures. Laravel retries a curated set of read-only commands and option-free SET operations once by default, while avoiding automatic retries for non-idempotent writes. Applications that need additional attempts may configure them with the REDIS_COMMAND_RETRIES environment variable.
Debounce Queued Event Listeners
Pull request by @stevebauman
The #[DebounceFor] attribute can now be applied to queued event listeners. When several events arrive for the same resource during the debounce period, Laravel processes only the most recently dispatched listener, making it a natural fit for work such as updating a product search index after a burst of changes. A maxWait value can ensure a continuous stream of events does not defer the listener indefinitely.
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Queue\Attributes\DebounceFor;
#[DebounceFor(30, maxWait: 120)]
class UpdateProductSearchIndex implements ShouldQueue
{
public function debounceId(ProductUpdated $event): string
{
return (string) $event->product->getKey();
}
}Pause Every Queue at Once
Pull request by @jackbayliss
Laravel's queue commands now support php artisan queue:pause --all and queue:resume --all, allowing applications to pause or resume work across every connection and queue from one place. Global pauses are independent from per-queue pauses, and the new QueuesPaused and QueuesResumed events make it possible to observe these operations.
Scout
Add Turbopuffer and Database Semantic Search
Pull request by @taylorotwell
Laravel Scout now includes a Turbopuffer engine with batched indexing, automatic namespace creation, weighted BM25 full-text search, filtering, and vector distance metadata. It uses Laravel's HTTP client directly, so no additional Turbopuffer PHP SDK is required.
This release also introduces semantic and hybrid search support for Scout's database engine. Applications can use generated or precomputed embeddings through the familiar Scout builder API, with support for vector search, text search, filters, pagination, and configurable search weights.
$documents = Document::search('ocean climate')
->semantic()
->where('published', true)
->get();Semantic and Hybrid Meilisearch Queries
Pull request by @taylorotwell
Scout's Meilisearch engine now supports semantic and hybrid search. Configure an embedder and model embedding settings, then use Scout's semantic() or hybrid() builder methods to search with generated or precomputed vectors. Laravel AI is used to generate embeddings when needed, while applications may provide their own vectors for indexing and querying.
$results = Article::search('a guide to queues')
->hybrid(textWeight: 1, semanticWeight: 2)
->get();AI
Repair Unknown AI Tool Calls
Pull request by @pushpak1300
Laravel AI agents can now recover when a model requests an unknown local tool. Opting an agent into the #[RepairToolCalls] attribute returns a tool result containing its available local tools, allowing the model to correct the call and continue generation instead of aborting the loop. Provider-hosted tools are intentionally excluded from the repair response.