Non saltare `else` con Octane
La settimana scorsa mi sono imbattuto in un bug subdolo di Octane. Dovevamo disabilitare la cifratura della history di Inertia in alcuni punti dell'app. Di default è abilitata ovunque. Così abbiamo aggiunto un controllo sulla route nel middleware per disattivarla.
class HandleInertiaRequests
{
public function handle(Request $request, Closure $next)
{
if ($request->is('admin/*')) {
Inertia::encryptHistory(false);
}
// …
}
}
Il problema è che, se stai eseguendo Octane e fai una richiesta a una route admin/*, la cifratura della history verrà disabilitata e non c'è nulla che la riabiliti per la richiesta successiva.
La soluzione è assicurarsi che entrambi i rami dell'istruzione vengano eseguiti.
class HandleInertiaRequests
{
public function handle(Request $request, Closure $next)
{
if ($request->is('admin/*')) {
Inertia::encryptHistory(false);
} else {
Inertia::encryptHistory(true);
}
// …
}
}
O, in modo più conciso:
class HandleInertiaRequests
{
public function handle(Request $request, Closure $next)
{
Inertia::encryptHistory(! $request->is('admin/*'));
// …
}
}
Fonte originale:
https://sebastiandedeyne.com/dont-skip-else-with-octaneAltri articoli recenti
Laravel AI 1.1 e 1.2: Agent Skills, Cohere e structured output più solidi
Le release 1.1.0 e 1.2.0 di laravel/ai portano gli Agent Skills, l'approvazione obbligatoria per i tool built-in e nuovi provider come Cohere e Laya self-hosted. Sul fronte qualità arrivano i fix allo structured output per Bedrock e il supporto alle provider options. Aggiornati anche i modelli di default, con Claude 4.7+ che ignora i sampling params.
Laravel 13.35.0: scheduler più controllabile, code più flessibili e response Markdown
Laravel 13.35.0 porta Schedule::alwaysOnOneServer(), il supporto a schedule:interrupt per i comandi di lunga durata, --memory in percentuale per queue:work e il nuovo metodo markdown() sulla response factory. Tante piccole migliorie anche a test, view compilate in parallelo e dischi local.
BashBox: un interprete Bash in sandbox per agenti AI in PHP
BashBox è un interprete bash scritto in puro PHP che permette di eseguire gli script generati dagli agenti AI senza mai ricorrere a proc_open, exec o shell_exec. Ogni comando è una classe PHP che lavora su un filesystem virtuale, con limiti di esecuzione, quote disco e accesso di rete configurabili. Ideale per chi sviluppa agenti con il Laravel AI SDK o altre librerie simili.