> ## Documentation Index
> Fetch the complete documentation index at: https://kawax.biz/llms.txt
> Use this file to discover all available pages before exploring further.

# Actualización de Laravel — Abril de 2026

> Actualización del ecosistema Laravel de abril de 2026. Passkeys (autenticación sin contraseña), Debounceable Jobs, MCP UI App, soporte de Redis Cluster y más.

En abril de 2026, la autenticación sin contraseña full-stack pasó a ser una funcionalidad estándar de Laravel, y se añadieron numerosas funcionalidades prácticas como los jobs Debounceable que controlan el despacho en ráfagas y el soporte de aplicaciones MCP UI.

Fuente: [Laravel April Product Updates](https://laravel.com/blog/laravel-april-product-updates)

***

## Laravel Framework

### Debounceable Queued Jobs

Una solución limpia para cargas de trabajo en ráfaga. Con el atributo `#[DebounceFor]`, múltiples despachos en el tiempo indicado se fusionan en uno y solo se ejecuta el último despacho. Es la idea inversa a `ShouldBeUnique` y hace más eficientes las actualizaciones consecutivas dentro de la ventana de debounce.

```php theme={null}
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Queue\Attributes\DebounceFor;

#[DebounceFor(30)]
class RebuildSearchIndex implements ShouldQueue
{
    // Aunque el usuario actualice el documento 10 veces en 30 segundos,
    // la reconstrucción del índice se ejecuta una sola vez
}

// También puedes debounce en el lado que lo invoca (sin cambiar la clase)
RebuildSearchIndex::dispatch()->debounceFor(seconds: 30);
```

<Info>
  Los jobs debounceados emiten el evento `JobDebounced`, con lo que puedes visualizar los jobs omitidos.
</Info>

### Soporte de respuesta JSON en la ruta de health

Las aplicaciones API-only ya no necesitan hacer scraping de HTML desde `/up`. La ruta de health integrada ahora devuelve JSON en respuesta a peticiones JSON.

```json theme={null}
{ "status": "Application is up" }
```

Se facilita la integración con balanceadores de carga, monitores de uptime y orquestadores. No se requiere ningún cambio de configuración.

### JsonFormatter

Gracias a `JsonFormatter`, los datos de `context()` de excepciones personalizadas se registran de forma fiable en los logs estructurados. Se incluye también el contexto de excepciones anteriores dentro de la cadena de excepciones.

```php theme={null}
// config/logging.php
'formatter' => Illuminate\Log\Formatters\JsonFormatter::class,
```

### prefersJsonResponses()

En una aplicación API, basta con añadir una línea en `bootstrap/app.php` para tratar como JSON las cabeceras `Accept` amplias, y los redireccionamientos de autenticación, los errores de validación y las páginas de excepción se serializan adecuadamente para el cliente.

```php theme={null}
return Application::configure(basePath: dirname(__DIR__))
    ->withRouting(...)
    ->prefersJsonResponses()
    ->create();
```

### Soporte de Cloudflare Email Service

Cloudflare Email Service tiene ahora soporte oficial como mailer de Laravel.

```php theme={null}
// config/services.php
'cloudflare' => [
    'account_id' => env('CLOUDFLARE_ACCOUNT_ID'),
    'token' => env('CLOUDFLARE_TOKEN'),
],
```

### Soporte completo de Redis Cluster

Se han resuelto los errores CROSSSLOT en entornos Redis Cluster como AWS ElastiCache Serverless. Cuando las colas y el ConcurrencyLimiter de Laravel detectan una conexión de Cluster, envuelven automáticamente los nombres de cola con hash tags.

```
queues:{default}          # slot "default"
queues:{default}:delayed  # mismo slot
queues:{default}:reserved # mismo slot
```

### Métodos de inspección de jobs de cola

Se han añadido tres métodos para revisar el contenido de los jobs sin mirar directamente en la BD.

```php theme={null}
Queue::pendingJobs();   // jobs en espera
Queue::delayedJobs();   // jobs diferidos
Queue::reservedJobs();  // jobs en procesamiento

// Acceder a instancias InspectedJob
Queue::reservedJobs('high-priority')->first()->name;
// => 'App\Jobs\SendEmail'
```

### Form Request Strict Mode

Puedes controlar que los campos no declarados no pasen la validación. Los campos entrantes no declarados en `rules()` se convierten en un fallo de validación.

```php theme={null}
// AppServiceProvider
public function boot(): void
{
    FormRequest::failOnUnknownFields(! app()->isProduction());
}
```

***

## Passkeys (autenticación sin contraseña)

La autenticación sin contraseña se ha hecho realidad de primera parte en toda la stack.

* **`laravel/passkeys` (lado servidor)**: proporciona migraciones, rutas de login/confirmación/gestión de credenciales, acciones WebAuthn y eventos
* **`@laravel/passkeys` (lado cliente)**: los helpers de React, Vue y Svelte procesan las ceremonias WebAuthn del navegador
* **Integración con Fortify**: basta con activarlo mediante `Features::passkeys()` para que la aplicación Fortify use los mismos endpoints y contratos

```php theme={null}
// config/fortify.php
'features' => [
    Features::passkeys(),
],
```

***

## Soporte de MCP UI App

Las herramientas MCP ahora pueden renderizar no solo texto, sino aplicaciones HTML completas en sandbox dentro de un iframe.

```bash theme={null}
php artisan make:mcp-app-resource DashboardApp
```

```php theme={null}
class DashboardApp extends AppResource
{
    #[RendersApp]
    public function handle(Request $request): Response
    {
        return Response::view('mcp.dashboard-app', [
            'title' => 'Dashboard',
        ]);
    }
}
```

***

## Inertia y ecosistema

* **Hook `useHttp`**: se han añadido los callbacks `onHttpException` y `onNetworkError`
* **Adaptador Svelte 5 de Laravel Echo**: se puede usar la funcionalidad de tiempo real desde Svelte con la rune `useEcho`
* **Dusk**: `clickOnceEnabled()` y `clickOnceVisible()` previenen tests flaky
* **Horizon**: soporte completo de Redis Cluster (compatible con AWS ElastiCache Serverless)
* **Extensión de VS Code**: autocompletado, hover y navegación para los nuevos atributos de Laravel 13

***

## Laravel Cloud y Laravel Forge

| Producto          | Actualizaciones principales                                                                                                                  |
| ----------------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
| **Laravel Cloud** | UI totalmente responsive con soporte móvil, mejoras en la red edge (visualización de top IP/paths, conversión de reglas de firewall y caché) |
| **Laravel Forge** | Soporte de PHP 8.5, soporte para múltiples servidores SSL, alertas de renovación de certificados                                             |


## Related topics

- [Actualización de Laravel — Mayo de 2026](/es/blog/changelog/202605.md)
- [Actualización de Laravel — Marzo de 2026](/es/blog/changelog/202603.md)
- [Actualización de Laravel — Junio de 2026](/es/blog/changelog/202606.md)
- [Guía de actualización de Laravel 12 a 13](/es/blog/upgrade-12-to-13.md)
- [Nuevo ecosistema de análisis de código de Laravel — surveyor / ranger / roster](/es/blog/laravel-ecosystem-analysis.md)
