SL
Skeptik Log
reddit

OpenClaw 4.20 ha rotto tutto per i power user: una community ha documentato tutti i 29 fix

Autore: u/Marcelovc Originale ↗
Nota: Le parti evidenziate in blu sono integrazioni di ricerca aggiunte per completezza, non presenti nel thread originale.

Dopo l’aggiornamento, u/Marcelovc ha trovato 29 cose da patchare a mano. Alcuni dei suoi fix sono riapparsi upstream. Sostiene anche di essere stato bannato da GitHub per averli segnalati.

La release 4.20 di OpenClaw ha 29 bug documentati che colpiscono i power user. Un utente bannato da GitHub li ha catalogati tutti. Diversi hanno issue aperte che confermano il problema, ma nessuno compare nel changelog ufficiale.

Fonte: Reddit r/openclaw (u/Marcelovc), GitHub, OpenClaw changelog

Che cos’è OpenClaw? Un assistente AI personale open-source (363K+ stelle su GitHub) che funziona come runtime per agenti AI su qualsiasi sistema operativo e piattaforma. La versione 4.20 (tag v2026.4.20), uscita il 21 aprile 2026, è ufficialmente una release minore: miglioramenti al wizard di onboarding, supporto al pricing a scaglioni dei modelli, Kimi K2.6 come nuovo default Moonshot, separazione dello stato cron in jobs-state.json, notifiche di compattazione inizio/fine, e vari fix. Il gateway è il demone centrale che gestisce sessioni, binding dei canali (Telegram, Discord, ecc.) e routing dei messaggi. ACP (Agent Client Protocol) permette ad agenti esterni come Codex, Claude Code e Kimi di connettersi come sessioni persistenti e con stato all’interno del runtime OpenClaw.

Perché ti dovrebbe interessare

Se usi OpenClaw in modo leggero, probabilmente la 4.20 ti è sembrata tranquilla. Ma se hai agenti ACP, binding Discord, hook personalizzati, sessioni lunghe o unità systemd in produzione, questa release ha 29 punti di rottura documentati. E la risposta ufficiale finora è stata silenzio: nessuno di questi problemi compare nel changelog. Il post di Marcelovc è una mappa di sopravvivenza, non una lamentela. Vediamo cosa ha trovato e cosa significa per chi dipende da questo software.

I 29 fix, area per area

Gateway e shutdown (fix 1, 22)

Il gateway interrompeva sessioni e binding a metà del lavoro durante i riavvii. Fix 1: aggiunta gestione del SIGTERM per il drain e KillMode=mixed nell’unità systemd. Fix 22: comportamento inconsistente del riavvio via systemd, risolvibile con override nelle drop-in directory.

Non sono bug controversi. La issue GitHub #26412 documenta che i riavvii del gateway uccidono i sub-agent attivi senza drain mode, senza recovery delle sessioni e senza log di ciò che è andato perso. La issue #32961 chiede un drain graceful prima del restart. La issue #23887 segnala che KillMode=process nell’unità systemd lascia processi Chrome/Playwright orfani dopo i crash del gateway. La PR #20357 ha proposto di rendere configurabile il KillMode, ma il problema di fondo del drain rimane aperto. Il changelog di 4.20 non menziona nessuno di questi fix.

ACP e persistenza dei binding (fix 2, 7, 14, 17, 28, 29)

Sei fix concentrati sulla fragilità di ACP:

  • Fix 2: identità e stato dei binding ACP persi tra le sessioni
  • Fix 7: corruzione dei metadati dell’ACP manager
  • Fix 14: streaming ritardato nelle sessioni ACP (soluzione: deliveryMode = "live")
  • Fix 17: limite di 30 minuti sui turni lunghi ACP (soluzione: portare a 3600s)
  • Fix 28: crash del CLI Claude in contesto ACP (soluzione: daemon di healing)
  • Fix 29: persistenza mancante per l’healing dei binding ACP (soluzione: estensione lossless-claw)

La stabilità di ACP è un punto dolente noto. La issue GitHub #62128 documenta payload vuoti intermittenti per gli agenti ACP (pi, opencode) causati da concorrenza. La issue è ancora aperta. Il changelog ufficiale di 4.20 include un fix per lo scoping errato del transport anthropic-messages ai provider non-Anthropic, che si sovrappone al fix #18 (argomenti tool vuoti durante lo streaming Kimi). Ma nessun fix per la persistenza dei binding ACP o la corruzione dei metadati compare nel changelog.

Compaction e memoria (fix 15, 16)

La compaction, il processo con cui OpenClaw comprime la cronologia quando la context window si riempie, è uno dei sottosistemi più criticati. Fix 15: crescita incontrollata della memoria dal contesto di avvio (soluzione: disabilitare lo startup context in openclaw.json). Fix 16: compaction troppo aggressiva nelle sessioni lunghe (soluzione: aumentare i token di contesto a 400k).

La issue GitHub #13624 descrive una “death spiral di auto-compaction” dove il recovery fallisce quando il transcript è troppo grande per essere compattato. La issue #10613 documenta cascate di retry che causano loop di overflow del contesto. Un post-mortem dettagliato di Clelp traccia un loop di compaction infinito a una cache di embedding da 184MB senza policy di eviction e uno store SQLite cresciuto senza limiti.

La release 4.20 ha aggiunto notifiche opt-in di inizio e completamento durante la compaction (PR #67830), ma questo ti dice solo che la compaction sta avvenendo, non risolve il problema di soglia sottostante. Il fix di Marcelovc (bump del contesto a 400k) è un workaround, non una soluzione. Il progetto non ha ancora affrontato la sensibilità fondamentale della compaction alle sessioni lunghe e ricche di tool.

Bash e sicurezza dell’esecuzione (fix 4, 5, 6, 21)

Tutti patch di hardening difensivo, nessuno nel changelog:

  • Fix 4: fallimenti multi-edit senza hint, che causano loop infiniti
  • Fix 5: comandi bash composti (a && b) che bypassano i controlli preflight
  • Fix 6: il runtime che si auto-uccide in loop via pkill (soluzione: fuser -k <port>/tcp)
  • Fix 21: esecuzioni bash foreground senza bound, con potenziali hang (soluzione: enforce dei timeout via hook)

Il bug del self-match pkill è un classico footgun: il processo del runtime matcha il pattern di kill, creando un loop di SIGKILL.

Modelli e problemi dei provider (fix 8, 9, 10, 18, 19, 27)

  • Fix 8: ID modello raw mostrati al posto dei nomi leggibili nella UI
  • Fix 9: hang infinito all’inizializzazione di Codex (soluzione: timeout di 60s)
  • Fix 10: API Moonshot che rifiuta request con il campo thinking (soluzione: rimuovere la chiave)
  • Fix 18: argomenti tool vuoti durante lo streaming Kimi (soluzione: switch al formato anthropic-messages)
  • Fix 19: fallback model errati nella cascata Codex (soluzione: svuotare l’array di fallback)
  • Fix 27: deriva comportamentale nell’uso di tool e thinking con Gemini (soluzione: riapplicare l’hotfix dopo ogni aggiornamento)

Il changelog di 4.20 affronta alcune questioni specifiche per provider: aggiunge supporto per thinking.keep = "all" su kimi-k2.6 e rimuove thinking per gli altri modelli Moonshot o quando tool_choice pinned disabilita il thinking (PR #68816). Corregge anche lo scoping errato del default anthropic-messages per provider non-Anthropic. Ma gli hang di Codex, i nomi dei modelli nella UI e la deriva comportamentale di Gemini sono assenti dalle note ufficiali.

Auth, logging e rumore dei plugin (fix 11, 12, 13)

  • Fix 11: falsi warning di scadenza token OAuth (soluzione: rispettare refresh_token negli health check)
  • Fix 12: warning rumorosi e ripetuti dal plugin loader (soluzione: trattare le installazioni come fonte attendibile)
  • Fix 13: file non allegati quando ci sono path media inline (soluzione: rilevare, validare e stagionare i file trovati)

Il changelog include un fix per il webchat che tratta gli allegati immagine inline come media nel gating empty-turn, che si sovrappone al fix #13.

Workaround per SDK/CLI Claude (fix 24, 25, 26)

  • Fix 24: bug upstream nel codice vendor Claude per ACP (soluzione: patch con marker OPENCLAW_*)
  • Fix 25: system reminder indesiderati iniettati dal Claude SDK
  • Fix 26: stesso problema dei reminder ma a livello CLI, che richiede una patch al binario stesso

Questi tre fix stanno patchando il codice di Anthropic dall’esterno. Fragile per definizione: si romperà a ogni aggiornamento SDK.

Infrastruttura e pulizia (fix 3, 20, 23)

  • Fix 3: crash allo shutdown sporco con AgentDisconnectedError (soluzione: sopprimere l’errore prima dell’exit)
  • Fix 20: stato stale accumulato nel runtime (soluzione: cleanup periodico via crontab)
  • Fix 23: leak di sessioni cross-project all’avvio (soluzione: rotazione delle sessioni al boot)

Il changelog affronta indirettamente il bloat dello store di sessione con la PR #69404, che enforce i cap sulle entry e il pruning per età di default per evitare OOM dai backlog.

Le reazioni della community

Il post ha acceso la solita disputa.

u/Flimsy_Exercise_1561 contesta il metodo: patchare file in dist/ significa che tutto sparirà al prossimo release. Serve il codice sorgente, rebuild, e verifica. “Se non sei riuscito a far accettare le tue modifiche, o fanno schifo, o le descrizioni fanno schifo, o non sono così importanti per i maintainer.”

u/ArchiDevil va dritto: “Se questi sono ‘bug’ che avevi segnalato su GitHub, non è sorprendente che ti abbiano bannato.”

u/Odd-Energy71 aggiunge un ironico fix #30: “Rug pull. Problema: fa riferimento al founder di Openclaw. Path: Titolo. Soluzione: wut?”

E u/Correct_Support_2444, sul numero di versione: “Dude, it’s a 4.20 release. It’s probably a damned inside joke. It’s well baked.”

L’obiezione della community sul patchare i file dist/ è fondata. OpenClaw distribuisce bundle JavaScript minificati con hash nel nome (i nomi file nei fix, come gateway-cli-Dk7XTZhh.js o bash-tools-UuDLD4ZI.js, includono l’hash del contenuto). Qualsiasi npm update o bump di versione rimpiazza completamente questi file. La via corretta è contribuire patch al repository sorgente o fare build da fork. Detto questo, l’osservazione centrale di Marcelovc regge: questi bug esistono, colpiscono installazioni produttive, e diversi hanno issue GitHub aperte che li confermano, indipendentemente da chi li ha segnalati per primo.

Il numero di versione e le tre release in tre giorni

La release 4.20 è uscita il 21 aprile 2026 e le battute sul “4/20” si sono scritte da sole. Ma il ciclo di patch ravvicinato racconta un’altra storia: v2026.4.21 è arrivata il 22 aprile e v2026.4.22 poco dopo. Quando tre release escono in tre giorni, la prima non era finita. Nessuno dei 29 problemi di Marcelovc compare nel changelog ufficiale di 4.20, che si concentra sul restyling del wizard, i default Kimi, la separazione dello stato cron e una manciata di fix per i provider. Il divario tra la narrativa ufficiale e ciò che i power user vivono realmente è la vera storia qui.

L'audit post-aggiornamento

Marcelovc suggerisce un prompt di verifica:

Audit my actual install against this fixes inventory (check above). Search by affected subsystem, config key, runtime behavior, and file path.

Checklist di ispezione:

  • File dist/ installati e loro hash
  • Config openclaw.json (startup context, token limits, delivery mode)
  • Unità/drop-in systemd (KillMode, SIGTERM handling)
  • Hook personalizzati e timeout
  • Cron job e sessioni stale
  • Log per errori ricorrenti
  • Backup e estensioni locali

I dettagli tecnici

Da qui in poi entra il tecnico. Se non ti interessa la classificazione sistematica dei fix, puoi saltare direttamente alla conclusione.

Classificazione dei 29 fix per tipologia

Categoria Fix Nel changelog?
Gateway e shutdown 1, 22 No
ACP e binding 2, 7, 14, 17, 28, 29 Parziale (fix transport)
Compaction e memoria 15, 16 Parziale (solo notifiche)
Bash e sicurezza 4, 5, 6, 21 No
Modelli e provider 8, 9, 10, 18, 19, 27 Parziale (thinking, transport)
Auth, logging, plugin 11, 12, 13 Parziale (fix allegati)
SDK/CLI Claude 24, 25, 26 No
Infrastruttura 3, 20, 23 Parziale (session pruning)

Su 29 fix documentati, il changelog ufficiale ne copre parzialmente 5 categorie e ne ignora completamente 3 (gateway, bash/sicurezza, workaround Claude).

Issue GitHub correlate

Le issue che confermano i problemi segnalati da Marcelovc:

  • #26412: riavvii del gateway senza drain
  • #32961: richiesta di drain graceful
  • #23887: processi orfani dopo crash del gateway
  • #62128: payload vuoti intermittenti per agenti ACP
  • #13624: death spiral di auto-compaction
  • #10613: loop di overflow del contesto

PR rilevanti: #20357 (KillMode configurabile), #67830 (notifiche compaction), #68816 (thinking Moonshot), #69404 (session pruning).

Il punto

Punti chiave:

  • OpenClaw 4.20 ha 29 bug documentati che colpiscono i power user, nessuno nel changelog ufficiale
  • L’autore della lista è stato bannato da GitHub per averli segnalati, ma le issue aperte confermano che i problemi sono reali
  • Le tre release in tre giorni successive alla 4.20 suggeriscono che la prima non era pronta per la produzione
  • Patchare i dist/ non è sostenibile a lungo termine, ma l’assenza di fix upstream lascia poche alternative

Se il tuo setup OpenClaw è piccolo, forse questa lista è overkill. Se lo usi sul serio, non lo è.

reddit Autore: u/Marcelovc