Actualización del ecosistema Laravel de mayo de 2026. Directiva Blade @fonts, jobs Interruptible, soporte de subagentes, Scale-to-Zero de Cloud y más.
Escuchar la páginaunos 3 min
En mayo de 2026 llegaron actualizaciones prácticas de gran calado como el Scale-to-Zero full-stack y las Managed Queues de Laravel Cloud, optimización de fuentes y pipelines multiagente.Fuente: Laravel May Product Updates
Se ha añadido la directiva @fonts, que gestiona automáticamente todos los elementos necesarios para cargar fuentes web: etiquetas <link rel="preload">, estilos @font-face y cabeceras HTTP/2 Push. Lee el manifest de fuentes generado por el plugin de fuentes de Vite e inyecta los elementos necesarios de golpe.
{{-- Cargar todas las fuentes --}}@fonts{{-- Solo familias de fuente específicas --}}@fonts(["sans", "mono"])
@fonts permite optimizar el rendimiento evitando precargas innecesarias al controlar únicamente las fuentes necesarias por página.
Con la nueva interfaz Interruptible, los jobs pueden reaccionar cuando el worker de la cola recibe SIGTERM durante un despliegue. Puedes detener bucles, liberar locks o guardar estado de forma segura antes de que se apague el worker.
use Illuminate\Contracts\Queue\Interruptible;use Illuminate\Contracts\Queue\ShouldQueue;class ProcessLargeReport implements ShouldQueue, Interruptible{ public function handle(): void { foreach ($this->getChunks() as $chunk) { if ($this->shouldInterrupt()) { $this->saveProgress(); return; } $this->processChunk($chunk); } }}
Las rutas API ahora devuelven automáticamente respuestas de error en formato JSON. Hasta ahora podía suceder que las rutas API devolvieran HTML en ciertas condiciones, pero las rutas definidas en api.php garantizan siempre una respuesta JSON.
Se ha añadido un nuevo almacén de caché storage. Utiliza el sistema de archivos como backend de caché, aprovechando la configuración de storage de Laravel.
Se ha añadido la opción de guardar en disco los payloads de SQS demasiado grandes (más de 256 KB). Es útil cuando se manejan grandes volúmenes de datos por colas.
Se ha añadido la opción --stop-when-empty, que detiene automáticamente el worker cuando la cola queda vacía. Es útil para procesamiento por lotes o entornos CI donde el worker debe terminar al vaciarse la cola.
Los agentes de IA de Laravel pueden ahora delegar en otros agentes. Si devuelves cualquier agente desde el método tools(), el LLM del agente padre lo invocará igual que a una herramienta normal. Como los contextos están aislados, no se mezclan los historiales de conversación.
class OrchestratorAgent extends Agent{ public function tools(): array { return [ new AnalysisAgent(), new WritingAgent(), new SearchTool(), ]; }}
Scale-to-Zero full-stack (arranque en menos de 500 ms, 20× más rápido), Managed Queues (workers con autoscaling y dashboard de jobs fallidos), límites de gasto, renovación de planes (plan Starter mensual de $5)
Laravel Forge
Managed MySQL 8.4 (backups automáticos, réplicas de lectura y alertas), PHP 8.5 pasa a ser el predeterminado, reinicio automático de Horizon cuando cambia el env
Nightwatch
El servidor MCP ofrece datos de rendimiento como tiempo de ejecución de rutas, tiempo de consultas y métricas de ejecución de jobs
Última modificación el 13 de julio de 2026
{"docsConfig":{"theme":"aspen","$schema":"https://mintlify.com/docs.json","name":"Knowledge of Laravel","colors":{"primary":"#16A34A","light":"#07C983","dark":"#15803D"},"logo":{"light":"https://mintcdn.com/invokable/AuZ0xql2mAbUyZ99/logo/light.svg?fit=max\u0026auto=format\u0026n=AuZ0xql2mAbUyZ99\u0026q=85\u0026s=df0b7397202a6aa1c1f321620c5aa146","dark":"https://mintcdn.com/invokable/AuZ0xql2mAbUyZ99/logo/dark.svg?fit=max\u0026auto=format\u0026n=AuZ0xql2mAbUyZ99\u0026q=85\u0026s=a8a0340d86ff8aa90e9adfc98a0362d7","href":"/"},"favicon":"https://mintcdn.com/invokable/AuZ0xql2mAbUyZ99/favicon.svg?fit=max\u0026auto=format\u0026n=AuZ0xql2mAbUyZ99\u0026q=85\u0026s=8f5a03a681c95d31803fc237b5811065","api":{"playground":{"display":"simple"}},"navbar":{},"footer":{"socials":{"github":"https://github.com/invokable"}},"seo":{"metatags":{"canonical":"https://kawax.biz"},"indexing":"all"},"styling":{"eyebrows":"breadcrumbs","latex":true},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"interaction":{"drilldown":false},"metadata":{"timestamp":true},"navigation":{"languages":[{"language":"jp","default":true,"href":"jp/packages/laravel-boost-copilot-cli"},{"language":"en","href":"en/packages/laravel-boost-copilot-cli"},{"language":"de","href":"de/packages/laravel-boost-copilot-cli"},{"language":"es","href":"es/packages/laravel-boost-copilot-cli"},{"language":"fr","href":"fr/packages/laravel-boost-copilot-cli"},{"language":"it","href":"it/packages/laravel-boost-copilot-cli"},{"language":"ko","href":"ko/packages/laravel-boost-copilot-cli"},{"language":"nl","href":"nl/packages/laravel-boost-copilot-cli"},{"language":"zh-Hans","href":"zh-CN/packages/laravel-boost-copilot-cli"},{"language":"zh-Hant","href":"zh-TW/packages/laravel-boost-copilot-cli"}]}},"deployment":{"deploymentMetadataValue":{"subdomain":"invokable","hasAudioNarration":true,"actualSubdomain":"invokable","customDomains":["kawax.biz"],"gitSource":{"type":"github","owner":"kawax","repo":"mintlify-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"feedback":{"thumbs":true,"agentFeedback":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6af42a2cab2a2eaa872b2ff8","clientVersion":"0.0.4102","searchFilterCounts":[{"language":"en","tag":"My Packages","count":145},{"language":"jp","tag":"マイパッケージ","count":145},{"language":"de","tag":"Meine Pakete","count":100},{"language":"es","tag":"Mis paquetes","count":100},{"language":"fr","tag":"Mes packages","count":100},{"language":"it","tag":"I miei pacchetti","count":100},{"language":"ko","tag":"My 패키지","count":100},{"language":"nl","tag":"Mijn packages","count":100},{"language":"zh-Hans","tag":"我的包","count":100},{"language":"zh-Hant","tag":"我的套件","count":100},{"language":"de","tag":"Fortgeschrittene Themen","count":81},{"language":"en","tag":"Advanced Topics","count":81},{"language":"es","tag":"Temas avanzados","count":81},{"language":"fr","tag":"Sujets avancés","count":81},{"language":"it","tag":"Argomenti avanzati","count":81},{"language":"jp","tag":"応用トピック","count":81},{"language":"ko","tag":"심화 주제","count":81},{"language":"nl","tag":"Geavanceerde onderwerpen","count":81},{"language":"zh-Hans","tag":"进阶主题","count":81},{"language":"zh-Hant","tag":"進階主題","count":81},{"language":"en","tag":"VOICEVOX","count":67},{"language":"jp","tag":"VOICEVOX","count":67},{"language":"de","tag":"Leitfaden","count":61},{"language":"en","tag":"Guide","count":61},{"language":"es","tag":"Guía","count":61},{"language":"fr","tag":"Guide","count":61},{"language":"it","tag":"Guida","count":61},{"language":"jp","tag":"ガイド","count":61},{"language":"ko","tag":"가이드","count":61},{"language":"nl","tag":"Gids","count":61},{"language":"zh-Hans","tag":"指南","count":61},{"language":"zh-Hant","tag":"指南","count":61},{"language":"de","tag":"Blog","count":47},{"language":"en","tag":"Blog","count":47},{"language":"es","tag":"Blog","count":47},{"language":"fr","tag":"Blog","count":47},{"language":"it","tag":"Blog","count":47},{"language":"jp","tag":"ブログ","count":47},{"language":"ko","tag":"블로그","count":47},{"language":"nl","tag":"Blog","count":47},{"language":"zh-Hans","tag":"博客","count":47},{"language":"zh-Hant","tag":"部落格","count":47},{"language":"en","tag":"VOICEVOX Engine API Reference","count":45},{"language":"jp","tag":"VOICEVOXエンジンAPIリファレンス","count":45},{"language":"de","tag":"GitHub Copilot","count":43},{"language":"en","tag":"GitHub Copilot","count":43},{"language":"es","tag":"GitHub Copilot","count":43},{"language":"fr","tag":"GitHub Copilot","count":43},{"language":"it","tag":"GitHub Copilot","count":43},{"language":"jp","tag":"GitHub Copilot","count":43},{"language":"ko","tag":"GitHub Copilot","count":43},{"language":"nl","tag":"GitHub Copilot","count":43},{"language":"zh-Hans","tag":"GitHub Copilot","count":43},{"language":"zh-Hant","tag":"GitHub Copilot","count":43},{"language":"de","tag":"Paketentwicklung","count":42},{"language":"en","tag":"Package Development","count":42},{"language":"es","tag":"Desarrollo de paquetes","count":42},{"language":"fr","tag":"Développement de packages","count":42},{"language":"it","tag":"Sviluppo di pacchetti","count":42},{"language":"jp","tag":"パッケージ開発","count":42},{"language":"ko","tag":"패키지 개발","count":42},{"language":"nl","tag":"Package-ontwikkeling","count":42},{"language":"zh-Hans","tag":"包开发","count":42},{"language":"zh-Hant","tag":"套件開發","count":42},{"language":"de","tag":"GitHub Copilot SDK for Laravel","count":41},{"language":"en","tag":"GitHub Copilot SDK for Laravel","count":41},{"language":"es","tag":"GitHub Copilot SDK for Laravel","count":41},{"language":"fr","tag":"GitHub Copilot SDK for Laravel","count":41},{"language":"it","tag":"GitHub Copilot SDK for Laravel","count":41},{"language":"jp","tag":"GitHub Copilot SDK for Laravel","count":41},{"language":"ko","tag":"GitHub Copilot SDK for Laravel","count":41},{"language":"nl","tag":"GitHub Copilot SDK for Laravel","count":41},{"language":"zh-Hans","tag":"GitHub Copilot SDK for Laravel","count":41},{"language":"zh-Hant","tag":"GitHub Copilot SDK for Laravel","count":41},{"language":"de","tag":"Tutorial","count":35},{"language":"en","tag":"Tutorial","count":35},{"language":"es","tag":"Tutorial","count":35},{"language":"fr","tag":"Tutoriel","count":35},{"language":"it","tag":"Tutorial","count":35},{"language":"jp","tag":"チュートリアル","count":35},{"language":"ko","tag":"튜토리얼","count":35},{"language":"nl","tag":"Tutorial","count":35},{"language":"zh-Hans","tag":"教程","count":35},{"language":"zh-Hant","tag":"教學","count":35},{"language":"de","tag":"SDK","count":27},{"language":"es","tag":"SDK","count":27},{"language":"fr","tag":"SDK","count":27},{"language":"it","tag":"SDK","count":27},{"language":"ko","tag":"SDK","count":27},{"language":"nl","tag":"SDK","count":27},{"language":"zh-Hans","tag":"SDK","count":27},{"language":"zh-Hant","tag":"SDK","count":27},{"language":"de","tag":"VOICEVOX","count":22},{"language":"es","tag":"VOICEVOX","count":22},{"language":"fr","tag":"VOICEVOX","count":22},{"language":"it","tag":"VOICEVOX","count":22},{"language":"ko","tag":"VOICEVOX","count":22},{"language":"nl","tag":"VOICEVOX","count":22},{"language":"zh-Hans","tag":"VOICEVOX","count":22},{"language":"zh-Hant","tag":"VOICEVOX","count":22}],"searchSettings":{"isFiltersEnabled":false,"showContentSnippets":true,"fullPageSearch":true}},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"privacy":{"consentBanner":{"enabled":true}},"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"es/blog/changelog/202605","slug":"/es/blog/changelog/202605","pageMetadata":{"title":"Actualización de Laravel — Mayo de 2026","description":"Actualización del ecosistema Laravel de mayo de 2026. Directiva Blade @fonts, jobs Interruptible, soporte de subagentes, Scale-to-Zero de Cloud y más.","sidebarTitle":"Mayo de 2026","href":"/es/blog/changelog/202605"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Actualización del ecosistema Laravel de mayo de 2026. Directiva Blade @fonts, jobs Interruptible, soporte de subagentes, Scale-to-Zero de Cloud y más.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,hr:`hr`,li:`li`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Heading,Table,Tip}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Tip)_missingMdxReference(`Tip`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`En mayo de 2026 llegaron actualizaciones prácticas de gran calado como el Scale-to-Zero full-stack y las Managed Queues de Laravel Cloud, optimización de fuentes y pipelines multiagente.`}),`\n`,_jsxs(_components.p,{children:[`Fuente: `,_jsx(_components.a,{href:`https://laravel.com/blog/laravel-may-product-updates`,children:`Laravel May Product Updates`})]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`laravel-framework`,children:`Laravel Framework`}),`\n`,_jsx(Heading,{level:`3`,id:`directiva-blade-@fonts`,children:`Directiva Blade @fonts`}),`\n`,_jsxs(_components.p,{children:[`Se ha añadido la directiva `,_jsx(_components.code,{children:`@fonts`}),`, que gestiona automáticamente todos los elementos necesarios para cargar fuentes web: etiquetas `,_jsx(_components.code,{children:`\u003clink rel=\"preload\">`}),`, estilos `,_jsx(_components.code,{children:`@font-face`}),` y cabeceras HTTP/2 Push. Lee el manifest de fuentes generado por el plugin de fuentes de Vite e inyecta los elementos necesarios de golpe.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`5`,language:`blade`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`blade`,children:_jsxs(_components.code,{language:`blade`,numberOfLines:`5`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`{{-- Cargar todas las fuentes --}}`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`@fonts`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`{{-- Solo familias de fuente específicas --}}`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`@fonts`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`([`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"sans\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"mono\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`])`})]}),`\n`]})})}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[_jsx(_components.code,{children:`@fonts`}),` permite optimizar el rendimiento evitando precargas innecesarias al controlar únicamente las fuentes necesarias por página.`]})}),`\n`,_jsx(Heading,{level:`3`,id:`interruptible-jobs-jobs-sensibles-a-señales`,children:`Interruptible Jobs (jobs sensibles a señales)`}),`\n`,_jsxs(_components.p,{children:[`Con la nueva interfaz `,_jsx(_components.code,{children:`Interruptible`}),`, los jobs pueden reaccionar cuando el worker de la cola recibe SIGTERM durante un despliegue. Puedes detener bucles, liberar locks o guardar estado de forma segura antes de que se apague el worker.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`16`,language:`php`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`php`,children:_jsxs(_components.code,{language:`php`,numberOfLines:`16`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`use`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#D4D4D4`},children:` Illuminate\\\\Contracts\\\\Queue\\\\`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`Interruptible`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`use`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#D4D4D4`},children:` Illuminate\\\\Contracts\\\\Queue\\\\`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`ShouldQueue`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`class`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` ProcessLargeReport`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` implements`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:` ShouldQueue`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`Interruptible`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` public`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` function`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` handle`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`()`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`:`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` void`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` foreach`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` (`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`$this`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`->`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`getChunks`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`() `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`as`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` $chunk`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` if`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` (`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`$this`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`->`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`shouldInterrupt`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`()) {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` $this`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`->`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`saveProgress`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`();`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` return`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` $this`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`->`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`processChunk`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$chunk`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsx(Heading,{level:`3`,id:`excepciones-json-por-defecto-en-rutas-api`,children:`Excepciones JSON por defecto en rutas API`}),`\n`,_jsxs(_components.p,{children:[`Las rutas API ahora devuelven automáticamente respuestas de error en formato JSON. Hasta ahora podía suceder que las rutas API devolvieran HTML en ciertas condiciones, pero las rutas definidas en `,_jsx(_components.code,{children:`api.php`}),` garantizan siempre una respuesta JSON.`]}),`\n`,_jsx(Heading,{level:`3`,id:`almacén-de-caché-storage`,children:`Almacén de caché storage`}),`\n`,_jsxs(_components.p,{children:[`Se ha añadido un nuevo almacén de caché `,_jsx(_components.code,{children:`storage`}),`. Utiliza el sistema de archivos como backend de caché, aprovechando la configuración de storage de Laravel.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`8`,language:`php`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`php`,children:_jsxs(_components.code,{language:`php`,numberOfLines:`8`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// config/cache.php`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'stores'`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` [`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'storage'`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` [`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'driver'`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =>`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'storage'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'disk'`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =>`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'local'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'path'`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =>`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'framework/cache'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ],`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`],`})}),`\n`]})})}),`\n`,_jsx(Heading,{level:`3`,id:`guardado-en-disco-de-payloads-grandes-de-sqs`,children:`Guardado en disco de payloads grandes de SQS`}),`\n`,_jsx(_components.p,{children:`Se ha añadido la opción de guardar en disco los payloads de SQS demasiado grandes (más de 256 KB). Es útil cuando se manejan grandes volúmenes de datos por colas.`}),`\n`,_jsx(Heading,{level:`3`,id:`filtro-de-entorno-para-comandos-programados`,children:`Filtro de entorno para comandos programados`}),`\n`,_jsxs(_components.p,{children:[`En el comando `,_jsx(_components.code,{children:`schedule:list`}),` ahora es posible filtrar por entorno.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`php`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` artisan`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` schedule:list`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --environment=production`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`3`,id:`opción-stop-when-empty-del-worker`,children:`Opción Stop When Empty del worker`}),`\n`,_jsxs(_components.p,{children:[`Se ha añadido la opción `,_jsx(_components.code,{children:`--stop-when-empty`}),`, que detiene automáticamente el worker cuando la cola queda vacía. Es útil para procesamiento por lotes o entornos CI donde el worker debe terminar al vaciarse la cola.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`php`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` artisan`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` queue:work`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --stop-when-empty`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`3`,id:`helper-de-esquema-foreignuuidfor`,children:`Helper de esquema foreignUuidFor`}),`\n`,_jsxs(_components.p,{children:[`Como equivalente en UUID de `,_jsx(_components.code,{children:`foreignIdFor()`}),`, se ha añadido `,_jsx(_components.code,{children:`foreignUuidFor()`}),`.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`3`,language:`php`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`php`,children:_jsxs(_components.code,{language:`php`,numberOfLines:`3`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`Schema`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`::`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`table`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'posts'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`function`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` (`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`Blueprint`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` $table`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` $table`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`->`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`foreignUuidFor`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`User`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`::`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`class`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`->`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`constrained`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`();`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`});`})}),`\n`]})})}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`soporte-de-subagentes-de-ia`,children:`Soporte de subagentes de IA`}),`\n`,_jsxs(_components.p,{children:[`Los agentes de IA de Laravel pueden ahora delegar en otros agentes. Si devuelves cualquier agente desde el método `,_jsx(_components.code,{children:`tools()`}),`, el LLM del agente padre lo invocará igual que a una herramienta normal. Como los contextos están aislados, no se mezclan los historiales de conversación.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`11`,language:`php`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`php`,children:_jsxs(_components.code,{language:`php`,numberOfLines:`11`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`class`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` OrchestratorAgent`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` extends`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:` Agent`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` public`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` function`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` tools`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`()`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`:`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` array`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` return`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` [`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` new`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:` AnalysisAgent`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(),`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` new`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:` WritingAgent`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(),`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` new`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:` SearchTool`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(),`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ];`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`inertia-3-x`,children:`Inertia 3.x`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsxs(_components.strong,{children:[`Opción `,_jsx(_components.code,{children:`mode`}),` de `,_jsx(_components.code,{children:`router.poll`})]}),`: puedes configurar el modo de funcionamiento del polling`]}),`\n`,_jsxs(_components.li,{children:[_jsxs(_components.strong,{children:[`Soporte de datos dinámicos en `,_jsx(_components.code,{children:`usePoll`})]}),`: actualización dinámica de datos durante el polling`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:_jsx(_components.code,{children:`Inertia.once`})}),`: soporte de eventos que se disparan una sola vez`]}),`\n`,_jsxs(_components.li,{children:[_jsxs(_components.strong,{children:[`Slot `,_jsx(_components.code,{children:`rescue`}),` de `,_jsx(_components.code,{children:`\u003cDeferred>`})]}),`: fallback para cuando fallan las props diferidas`]}),`\n`]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`pao-php-agentic-output`,children:`PAO (PHP Agentic Output)`}),`\n`,_jsx(_components.p,{children:`PAO se ha integrado por defecto en los starter kits. También se han añadido las siguientes funciones:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Soporte de Rector`}),`: PAO también procesa la salida JSON de Rector`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Guía para agentes de PHPStan`}),`: se ha añadido una guía que informa a los agentes de cómo corregir los puntos con errores`]}),`\n`,_jsxs(_components.li,{children:[_jsxs(_components.strong,{children:[`Variable de entorno `,_jsx(_components.code,{children:`PAO_FORCE`})]}),`: fuerza la activación del modo PAO`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Soporte de Artisan RECTOR`}),`: PAO soporta comandos Artisan`]}),`\n`]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`laravel-cloud-laravel-forge-y-nightwatch`,children:`Laravel Cloud, Laravel Forge y Nightwatch`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Producto`}),_jsx(_components.th,{children:`Actualizaciones principales`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Laravel Cloud`})}),_jsx(_components.td,{children:`Scale-to-Zero full-stack (arranque en menos de 500 ms, 20× más rápido), Managed Queues (workers con autoscaling y dashboard de jobs fallidos), límites de gasto, renovación de planes (plan Starter mensual de $5)`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Laravel Forge`})}),_jsx(_components.td,{children:`Managed MySQL 8.4 (backups automáticos, réplicas de lectura y alertas), PHP 8.5 pasa a ser el predeterminado, reinicio automático de Horizon cuando cambia el env`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Nightwatch`})}),_jsx(_components.td,{children:`El servidor MCP ofrece datos de rendimiento como tiempo de ejecución de rutas, tiempo de consultas y métricas de ejecución de jobs`})]})]})]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Actualización de Laravel — Mayo de 2026","description":"Actualización del ecosistema Laravel de mayo de 2026. Directiva Blade @fonts, jobs Interruptible, soporte de subagentes, Scale-to-Zero de Cloud y más.","sidebarTitle":"Mayo de 2026","href":"/es/blog/changelog/202605"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Laravel Framework","slug":"laravel-framework","depth":2,"children":[{"title":"Directiva Blade @fonts","slug":"directiva-blade-@fonts","depth":3,"children":[]},{"title":"Interruptible Jobs (jobs sensibles a señales)","slug":"interruptible-jobs-jobs-sensibles-a-señales","depth":3,"children":[]},{"title":"Excepciones JSON por defecto en rutas API","slug":"excepciones-json-por-defecto-en-rutas-api","depth":3,"children":[]},{"title":"Almacén de caché storage","slug":"almacén-de-caché-storage","depth":3,"children":[]},{"title":"Guardado en disco de payloads grandes de SQS","slug":"guardado-en-disco-de-payloads-grandes-de-sqs","depth":3,"children":[]},{"title":"Filtro de entorno para comandos programados","slug":"filtro-de-entorno-para-comandos-programados","depth":3,"children":[]},{"title":"Opción Stop When Empty del worker","slug":"opción-stop-when-empty-del-worker","depth":3,"children":[]},{"title":"Helper de esquema foreignUuidFor","slug":"helper-de-esquema-foreignuuidfor","depth":3,"children":[]}]},{"title":"Soporte de subagentes de IA","slug":"soporte-de-subagentes-de-ia","depth":2,"children":[]},{"title":"Inertia 3.x","slug":"inertia-3-x","depth":2,"children":[]},{"title":"PAO (PHP Agentic Output)","slug":"pao-php-agentic-output","depth":2,"children":[]},{"title":"Laravel Cloud, Laravel Forge y Nightwatch","slug":"laravel-cloud-laravel-forge-y-nightwatch","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"narration":{"path":"es/blog/changelog/202605","locale":"es","estimatedDurationSec":204},"subdomain":"invokable","siteName":"Knowledge of Laravel","title":"Actualización de Laravel — Mayo de 2026 - Knowledge of Laravel","relatedPagesConfig":{"enabled":true,"limit":5,"mode":"automatic"},"navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"jp":{"href":"/jp/blog/changelog/202605","matchLevel":1},"en":{"href":"/en/blog/changelog/202605","matchLevel":1},"de":{"href":"/de/blog/changelog/202605","matchLevel":1},"es":{"href":"/es/blog/changelog/202605","matchLevel":0},"fr":{"href":"/fr/blog/changelog/202605","matchLevel":1},"it":{"href":"/it/blog/changelog/202605","matchLevel":1},"ko":{"href":"/ko/blog/changelog/202605","matchLevel":1},"nl":{"href":"/nl/blog/changelog/202605","matchLevel":1},"zh-Hans":{"href":"/zh-CN/blog/changelog/202605","matchLevel":1},"zh-Hant":{"href":"/zh-TW/blog/changelog/202605","matchLevel":1}}},"lastModified":"2026-07-13T21:16:45.555Z","gitLastModified":"2026-07-13T21:15:13.000Z","originalFileLocation":"es/blog/changelog/202605.mdx","locale":"es"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Actualización del ecosistema Laravel de mayo de 2026. Directiva Blade @fonts, jobs Interruptible, soporte de subagentes, Scale-to-Zero de Cloud y más.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Knowledge of Laravel\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/invokable/pboFjibLpJPX3oCo/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/invokable/pboFjibLpJPX3oCo/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/invokable/pboFjibLpJPX3oCo/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/invokable/pboFjibLpJPX3oCo/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/invokable/pboFjibLpJPX3oCo/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/invokable/pboFjibLpJPX3oCo/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/invokable/pboFjibLpJPX3oCo/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/invokable/pboFjibLpJPX3oCo/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/invokable/pboFjibLpJPX3oCo/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Actualización de Laravel — Mayo de 2026 - Knowledge of Laravel\">\u003cmeta data-mint-head property=\"og:description\" content=\"Actualización del ecosistema Laravel de mayo de 2026. Directiva Blade @fonts, jobs Interruptible, soporte de subagentes, Scale-to-Zero de Cloud y más.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Knowledge of Laravel\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://kawax.biz/es/blog/changelog/202605\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://invokable.mintlify.site/_mintlify/api/og/v2?division=Changelog\u0026amp;title=Actualizaci%C3%B3n+de+Laravel+%E2%80%94+Mayo+de+2026\u0026amp;description=Actualizaci%C3%B3n+del+ecosistema+Laravel+de+mayo+de+2026.+Directiva+Blade+%40fonts%2C+jobs+Interruptible%2C+soporte+de+subagentes%2C+Scale-to-Zero+de+Cloud+y+m%C3%A1s.\u0026amp;theme=cef70bdc0dd1884481ab7c5d\u0026amp;signature=d54fbc0dc389545f38f5ea01855e745136b9aa425c86782fce295e54f507bf54\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Actualización de Laravel — Mayo de 2026 - Knowledge of Laravel\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Actualización del ecosistema Laravel de mayo de 2026. Directiva Blade @fonts, jobs Interruptible, soporte de subagentes, Scale-to-Zero de Cloud y más.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://invokable.mintlify.site/_mintlify/api/og/v2?division=Changelog\u0026amp;title=Actualizaci%C3%B3n+de+Laravel+%E2%80%94+Mayo+de+2026\u0026amp;description=Actualizaci%C3%B3n+del+ecosistema+Laravel+de+mayo+de+2026.+Directiva+Blade+%40fonts%2C+jobs+Interruptible%2C+soporte+de+subagentes%2C+Scale-to-Zero+de+Cloud+y+m%C3%A1s.\u0026amp;theme=cef70bdc0dd1884481ab7c5d\u0026amp;signature=d54fbc0dc389545f38f5ea01855e745136b9aa425c86782fce295e54f507bf54\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/invokable/pboFjibLpJPX3oCo/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Knowledge of Laravel\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#16A34A\">\u003clink data-mint-head rel=\"canonical\" href=\"https://kawax.biz/es/blog/changelog/202605\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/es/blog/changelog/202605.md\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"es\" href=\"https://kawax.biz/es/blog/changelog/202605\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ja\" href=\"https://kawax.biz/jp/blog/changelog/202605\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"en\" href=\"https://kawax.biz/en/blog/changelog/202605\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"de\" href=\"https://kawax.biz/de/blog/changelog/202605\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"fr\" href=\"https://kawax.biz/fr/blog/changelog/202605\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"it\" href=\"https://kawax.biz/it/blog/changelog/202605\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ko\" href=\"https://kawax.biz/ko/blog/changelog/202605\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"nl\" href=\"https://kawax.biz/nl/blog/changelog/202605\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"zh-Hans\" href=\"https://kawax.biz/zh-CN/blog/changelog/202605\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"zh-Hant\" href=\"https://kawax.biz/zh-TW/blog/changelog/202605\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"x-default\" href=\"https://kawax.biz/jp/blog/changelog/202605\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://kawax.biz/#organization\",\"name\":\"Knowledge of Laravel\",\"url\":\"https://kawax.biz\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/invokable/AuZ0xql2mAbUyZ99/logo/light.svg?fit=max\u0026auto=format\u0026n=AuZ0xql2mAbUyZ99\u0026q=85\u0026s=df0b7397202a6aa1c1f321620c5aa146\"}},{\"@type\":\"WebSite\",\"@id\":\"https://kawax.biz#website\",\"name\":\"Knowledge of Laravel\",\"url\":\"https://kawax.biz\",\"publisher\":{\"@id\":\"https://kawax.biz/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://kawax.biz/es/blog/changelog/202605#webpage\",\"url\":\"https://kawax.biz/es/blog/changelog/202605\",\"name\":\"Actualización de Laravel — Mayo de 2026\",\"description\":\"Actualización del ecosistema Laravel de mayo de 2026. Directiva Blade @fonts, jobs Interruptible, soporte de subagentes, Scale-to-Zero de Cloud y más.\",\"dateModified\":\"2026-07-13T21:15:13.000Z\",\"isPartOf\":{\"@id\":\"https://kawax.biz#website\"},\"breadcrumb\":{\"@id\":\"https://kawax.biz/es/blog/changelog/202605#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://kawax.biz/es/blog/changelog/202605#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Changelog\",\"item\":\"https://kawax.biz/es/blog/changelog/202610\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Actualización de Laravel — Mayo de 2026\",\"item\":\"https://kawax.biz/es/blog/changelog/202605\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://kawax.biz/es/blog/changelog/202605#article\",\"headline\":\"Actualización de Laravel — Mayo de 2026\",\"name\":\"Actualización de Laravel — Mayo de 2026\",\"description\":\"Actualización del ecosistema Laravel de mayo de 2026. Directiva Blade @fonts, jobs Interruptible, soporte de subagentes, Scale-to-Zero de Cloud y más.\",\"url\":\"https://kawax.biz/es/blog/changelog/202605\",\"mainEntityOfPage\":{\"@id\":\"https://kawax.biz/es/blog/changelog/202605#webpage\"},\"dateModified\":\"2026-07-13T21:15:13.000Z\",\"publisher\":{\"@id\":\"https://kawax.biz/#organization\"},\"isPartOf\":{\"@id\":\"https://kawax.biz#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Knowledge of Laravel\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Knowledge of Laravel\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/es/blog/changelog/202605.md","siteName":"Knowledge of Laravel","nav":{"global":null,"languages":[{"language":"jp","default":true,"pages":[{"title":"jp","href":"/jp/blog/changelog/202605"}]},{"language":"en","pages":[{"title":"en","href":"/en/blog/changelog/202605"}]},{"language":"de","pages":[{"title":"de","href":"/de/blog/changelog/202605"}]},{"language":"es","tabs":[{"tab":"Mis paquetes","pages":[{"title":"Mis paquetes","href":"/es/packages/laravel-boost-copilot-cli"}]},{"tab":"Tutorial","pages":[{"title":"Tutorial","href":"/es/introduction"}]},{"tab":"Guía","pages":[{"title":"Guía","href":"/es/lifecycle"}]},{"tab":"Temas avanzados","pages":[{"title":"Temas avanzados","href":"/es/advanced/mcp-server"}]},{"tab":"Blog","groups":[{"group":"Changelog","pages":[{"title":"Actualización de Laravel — Octubre de 2026","sidebarTitle":"Octubre de 2026","href":"/es/blog/changelog/202610"},{"title":"Actualización de Laravel — Septiembre de 2026","sidebarTitle":"Septiembre de 2026","href":"/es/blog/changelog/202609"},{"title":"Actualización de Laravel — Agosto de 2026","sidebarTitle":"Agosto de 2026","href":"/es/blog/changelog/202608"},{"title":"Actualización de Laravel — Julio de 2026","sidebarTitle":"Julio de 2026","href":"/es/blog/changelog/202607"},{"title":"Actualización de Laravel — Junio de 2026","description":"Actualización del ecosistema Laravel de junio de 2026. Bus::bulk(), soporte del pooler de transacciones de Postgres, cliente/servidor MCP, comando artisan dev, metadatos de rutas, y más.","sidebarTitle":"Junio de 2026","href":"/es/blog/changelog/202606"},{"title":"Actualización de Laravel — Mayo de 2026","sidebarTitle":"Mayo de 2026","href":"/es/blog/changelog/202605"},{"title":"Actualización de Laravel — Abril de 2026","description":"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.","sidebarTitle":"Abril de 2026","href":"/es/blog/changelog/202604"},{"title":"Actualización de Laravel — Marzo de 2026","sidebarTitle":"Marzo de 2026","href":"/es/blog/changelog/202603"}]},{"group":"Laravel 13","pages":[{"title":"Resumen de las novedades de Laravel 13","href":"/es/blog/laravel-13-new-features"}]},{"group":"Productos","pages":[{"title":"Laravel Cloud — visión completa del PaaS específico para Laravel","href":"/es/blog/laravel-cloud"},{"title":"Hibernación (suspensión automática) de Laravel Cloud","href":"/es/blog/laravel-cloud-hibernation"},{"title":"Introducción a Laravel Nightwatch","href":"/es/blog/nightwatch-introduction"},{"title":"Laravel Cloud CLI — Operar Laravel Cloud desde la terminal","href":"/es/blog/laravel-cloud-cli"},{"title":"Los agentes de IA pasan de código «correcto» a código «idiomático de Laravel»: el siguiente paso de Boost Benchmarks","sidebarTitle":"Siguiente paso de Boost Benchmarks","href":"/es/blog/boost-benchmarks-idiomatic-laravel"},{"title":"Los agentes de IA de Laravel ahora soportan MCP","href":"/es/blog/ai-sdk-mcp-client"}]},{"group":"Presentación de paquetes","pages":[{"title":"⚡Introducción a Livewire 4 — Crear UIs reactivas sin JavaScript","href":"/es/blog/livewire-introduction"},{"title":"Construir una SPA con Inertia.js","href":"/es/blog/inertia-introduction"},{"title":"Empieza a testear Laravel con Pest PHP","href":"/es/blog/pest-introduction"},{"title":"Casos de uso prácticos de Laravel Pennant","href":"/es/blog/laravel-pennant"},{"title":"Técnicas prácticas de Laravel Telescope","href":"/es/blog/telescope-introduction"},{"title":"Presentación de Laravel Wayfinder","href":"/es/blog/wayfinder-introduction"},{"title":"Presentación del paquete Blaze","href":"/es/blog/blaze-introduction"}]},{"group":"Análisis de nuevos repositorios","pages":[{"title":"Laravel Multiplex — un TUI para gestionar en conjunto los procesos de desarrollo local","href":"/es/blog/multiplex-introduction"},{"title":"Laravel Maestro — Orquestador de desarrollo de starter kits","href":"/es/blog/maestro-introduction"},{"title":"laravel/agent-skills — Colección oficial de skills para agentes de IA de Laravel","href":"/es/blog/agent-skills-introduction"},{"title":"Nuevo ecosistema de análisis de código de Laravel — surveyor / ranger / roster","href":"/es/blog/laravel-ecosystem-analysis"},{"title":"Laravel Sentinel — Investigación del middleware de protección de rutas","href":"/es/blog/sentinel-introduction"},{"title":"Investigación inicial de Laravel Passkeys (passkeys-server + @laravel/passkeys)","href":"/es/blog/passkeys-introduction"},{"title":"Laravel Agent Detector — Paquete de detección de agentes de IA","href":"/es/blog/agent-detector-introduction"},{"title":"Laravel PAO — Herramienta de optimización de salida para agentes de IA","href":"/es/blog/pao-introduction"},{"title":"Laravel Chisel — Biblioteca de scripts de post-instalación para starter kits","sidebarTitle":"Laravel Chisel","href":"/es/blog/chisel-introduction"},{"title":"Laravel LSP — extensión de funciones del IDE mediante Language Server Protocol","href":"/es/blog/laravel-lsp-introduction"},{"title":"laravel/symfony-on-cloud — Ejecutar aplicaciones Symfony en Laravel Cloud","href":"/es/blog/symfony-on-cloud-introduction"},{"title":"Laravel Package Skeleton — Plantilla oficial para paquetes","sidebarTitle":"Laravel Package Skeleton","href":"/es/blog/package-skeleton-introduction"},{"title":"Laravel Doctor — herramienta de diagnóstico de la aplicación","href":"/es/blog/laravel-doctor-introduction"},{"title":"cpx 2.0 — Composer Package Executor totalmente reescrito","sidebarTitle":"cpx 2.0","href":"/es/blog/cpx-introduction"}]},{"group":"Guías de actualización","pages":[{"title":"Guía de actualización de Laravel 12 a 13","href":"/es/blog/upgrade-12-to-13"},{"title":"Guía de actualización de Laravel 11 a 12","href":"/es/blog/upgrade-11-to-12"},{"title":"Actualización de Laravel 10 a 11","href":"/es/blog/upgrade-10-to-11"},{"title":"Actualización de Laravel 9 a 10","href":"/es/blog/upgrade-9-to-10"},{"title":"Actualización de Laravel 8 a 9","href":"/es/blog/upgrade-8-to-9"}]},{"group":"Autenticación","pages":[{"title":"Guía de migración de laravel/ui a Fortify","href":"/es/blog/ui-to-fortify"}]},{"group":"Frontend","pages":[{"title":"Introducción a Vue.js — Fundamentos para usarlo con Inertia × Laravel","href":"/es/blog/vue-introduction"},{"title":"Introducción a React — Fundamentos para usarlo con Inertia × Laravel","href":"/es/blog/react-introduction"},{"title":"Introducción a Svelte — Fundamentos para usarlo con Inertia × Laravel","href":"/es/blog/svelte-introduction"}]},{"group":"Configuración del entorno","pages":[{"title":"Instalar PHP, Composer y Node.js con Homebrew (macOS)","href":"/es/blog/mac-setup"},{"title":"Instalar PHP, Composer y Node.js con WSL (Windows)","href":"/es/blog/windows-setup"}]}]}]},{"language":"fr","pages":[{"title":"fr","href":"/fr/blog/changelog/202605"}]},{"language":"it","pages":[{"title":"it","href":"/it/blog/changelog/202605"}]},{"language":"ko","pages":[{"title":"ko","href":"/ko/blog/changelog/202605"}]},{"language":"nl","pages":[{"title":"nl","href":"/nl/blog/changelog/202605"}]},{"language":"zh-Hans","pages":[{"title":"zh-Hans","href":"/zh-CN/blog/changelog/202605"}]},{"language":"zh-Hant","pages":[{"title":"zh-Hant","href":"/zh-TW/blog/changelog/202605"}]}]},"basePath":"","title":"Actualización de Laravel — Mayo de 2026 - Knowledge of Laravel","buildId":"dpl_596ePT575z4qnAFksq1biRW97aLY","deploymentId":"dpl_596ePT575z4qnAFksq1biRW97aLY","dynamics":["2bfc744e19"],"chunks":["NarrationPlayer-B8rALa9K.js","types-CiTgMxws.js","shallow-BG4cT0fH.js"]}