3.22 arrancou a arquitetura antiga e reconstruiu as fundações. Doze breaking changes. Um novo registro de plugins. Trinta patches de segurança. Foi o maior release da história do OpenClaw.
Também quebrou coisas.
3.23 é o release que garante que o paciente sobreviva à cirurgia. Três breaking changes — todos olhando pra frente. Mais de quarenta correções — a maioria limpando o que 3.22 expôs. Um dia entre releases, porque algumas coisas não podiam esperar.
Breaking Changes
Apenas três desta vez, e nenhum remove algo que você está usando.
Qwen ganha endpoints DashScope padrão
O provider Qwen agora inclui endpoints DashScope padrão (pay-as-you-go) para chaves API da China e globais, junto aos endpoints Coding Plan existentes. O grupo de providers é renomeado para Qwen (Alibaba Cloud Model Studio).
Por que isso importa: a integração Qwen anterior suportava apenas chaves Coding Plan — um subconjunto da oferta da Alibaba Cloud. Se você está na China ou usa uma chave DashScope global com cobrança padrão, modelos Qwen agora funcionam direto, sem configurações de contorno.
Reorganização da Control UI
Primitivos de botão consolidados (btn--icon, btn--ghost, btn--xs). O tema Knot muda para uma paleta preto e vermelho com contraste WCAG 2.1 AA. Seções de configuração ganham ícones dedicados. O slider de arredondamento é substituído por stops discretos. Acessibilidade melhora com aria-labels nos filtros de uso.
Hashing CSP de scripts
Blocos <script> inline no index.html servido agora recebem hashes SHA-256 na diretiva CSP script-src. Scripts inline permanecem bloqueados por padrão — apenas código bootstrap explicitamente hasheado é permitido. Se você estava injetando scripts inline personalizados na Control UI, eles agora serão bloqueados a menos que sejam hasheados.
Revisão do sistema de credenciais auth
Oito correções no sistema de auth e credenciais. A área mais quebrada após 3.22.
A correção principal: escritas em tempo real do auth-profile do gateway estavam revertendo credenciais recém-salvas para valores obsoletos na memória. Você colava um novo token OpenAI, salvava, e via ele voltar pro token expirado. Fluxos de Configure, Onboard e colagem de token — todos com a mesma causa raiz. Corrigido.
Preservação de scope de operator: o caminho de bypass de auth por dispositivo descartava silenciosamente os scopes de operator. Tokens em cache com scopes insuficientes agora são ignorados.
Auth de canais CLI: setups de canal único selecionam automaticamente o único canal com capacidade de login. Channel IDs são hardened contra abuso de cadeia de protótipos e caracteres de controle.
Autenticação ClawHub macOS (três correções relacionadas): o token de login do ClawHub agora é lido do caminho macOS Application Support, com XDG config como fallback. A navegação de skills do gateway usa o estado auth autenticado.
Suporte a proxy OAuth: o dispatcher de proxy HTTP/HTTPS configurado por env agora é inicializado antes de requisições de troca de token e preflight.
Autorização de slash commands: a autorização não crasha mais nem descarta allowlists válidas quando a resolução de allowFrom do canal encontra contas SecretRef não resolvidas.
Estabilidade do navegador: não apresse o handshake
Conexão macOS Chrome: ao conectar a uma sessão Chrome existente via MCP, o handshake inicial era tratado como "pronto" antes dos tabs estarem realmente usáveis. A correção espera os tabs ficarem totalmente usáveis após a conexão.
CDP Linux headless: em setups headless Linux mais lentos, uma falha breve de alcançabilidade inicial disparava um relançamento completo do navegador. A correção reutiliza o navegador loopback já em execução.
Ambos os bugs compartilham o mesmo padrão: o sistema era impaciente demais ao julgar transições de estado.
Ecossistema de plugins: limpeza pós-ClawHub
- •Sidecars de runtime bundled voltaram: arquivos de entrada de runtime de plugins estavam faltando no pacote npm. Corrigido.
- •Compatibilidade de instalação ClawHub: compatibilidade de API de plugins agora é resolvida contra a versão de runtime ativa.
- •Desinstalação aceita specs ClawHub:
openclaw plugins uninstall clawhub:<package>funciona novamente. - •LanceDB inicializa no primeiro uso: o plugin
memory-lancedbagora inicializa LanceDB automaticamente. - •Config obsoleta não é mais fatal: IDs desconhecidos em
plugins.allowsão tratados como avisos. - •Limpeza do Doctor:
openclaw doctor --fixremove referências residuais após remoção de plugins. - •Correções de runtime Matrix e LINE: exports duplicados de runtime-api sob Jiti não crasham mais.
Confiabilidade de agents
Seis correções para comportamento de agent mais previsível:
- •Provider web_search: turns de agent agora usam o provider
web_searchdo runtime ativo em vez de uma seleção obsoleta ou padrão. Se você configurou um provider de busca específico, ele agora é realmente usado. - •Classificação de failover: payloads genéricos
api_errorsão retentáveis apenas quando incluem sinais de falha transitória. Falhas de backend estilo MiniMax ainda acionam fallback de modelo, mas erros de cobrança, auth e formato não acionam mais. - •Precisão de timeout de subagents: esperas de workers com timeout são reverificadas contra o snapshot de runtime mais recente antes de enviar eventos de conclusão, para que workers que terminaram rápido não sejam falsamente reportados como expirados.
- •Blocos thinking Anthropic: a ordenação dos blocos assistant thinking e
redacted-thinkingé preservada durante a sanitização de imagens de transcrição, prevenindo que turns subsequentes violem a validação de unmodified-thinking da Anthropic. - •Recuperação de replay: conteúdo de transcrição de assistant malformado é canonizado antes da sanitização do histórico de sessão, para que turns legados ou corrompidos não crashem os caminhos de Pi replay e recuperação de subagents.
- •Injeção de config de skills: config e env de skills embarcados usam o snapshot de runtime ativo resolvido, para que SecretRefs de
skills.entries.<skill>.apiKeysejam resolvidos corretamente durante a inicialização embarcada.
Hardening do gateway
Quatro correções para a confiabilidade do gateway:
- •Precisão de probe: handshakes de gateway bem-sucedidos não são mais reportados como "inalcançáveis" enquanto RPCs de detalhes pós-conexão ainda estão carregando. Dispositivos lentos reportam uma falha de RPC alcançável em vez de um falso-negativo de gateway morto.
- •Estabilidade de supervision: conflitos de lock sob
launchdesystemdnão causam mais crash-loops. O processo duplicado permanece em espera de retry em vez de sair com erro enquanto o gateway saudável ainda mantém o lock. - •Enforcement de auth: rotas canvas agora requerem autenticação. Reset de sessão de agent requer scope admin. Acesso anônimo a canvas e requisições de reset não-admin recebem fail closed.
- •Preços OpenRouter: o refresh de preços de
openrouter/autonão recursa mais infinitamente durante o bootstrap, para que rotas auto possam popular preços em cache eusage.costnovamente.
Correções de canais
Telegram recebe três correções: o contexto de threading de DM topics é preenchido corretamente quando metadados do thread principal estão ausentes. A ordem de debounce de mensagens inbound do mesmo chat é preservada sem prender followups de sessões busy obsoletas. asDocument é adicionado como alias voltado ao usuário de forceDocument em envios de imagens e GIFs.
Discord: slash commands nativos privilegiados agora retornam uma resposta explícita de não autorizado em vez de cair na conclusão genérica enganosa do Discord quando gates de auth rejeitam o remetente.
Voz Plivo: chaves de replay são estabilizadas para que retries de webhook e proteção de replay não colidam com entregas de follow-up válidas.
Catálogos de canais externos agora podem sobrescrever metadados fallback incluídos e respeitar specs npm sobrescritas durante a configuração do canal, para que catálogos customizados não façam mais fallback para pacotes bundled quando um channel ID coincide.
Todo o resto
- •Mistral: defaults bundled de max-token reduzidos para budgets de saída seguros.
openclaw doctor --fixrepara configs persistidas antigas que ainda carregam limites de saída de tamanho de contexto, evitando rejeições 422 determinísticas. - •CLI cron:
openclaw cron add|edit --at ... --tz <iana>agora respeita corretamente o horário local solicitado para datetimes one-shot sem offset, incluindo limites de DST. - •Avisos de config: o aviso confuso de "OpenClaw mais novo" é suprimido quando uma config escrita por um release de correção same-base (como
2026.3.23-2) é lida por2026.3.23. - •Exec trust: binários wrapper de shell-multiplexer são preservados para verificações de política sem quebrar a reconstrução de comandos aprovados, mantendo allowlist e fluxos de auditoria de BusyBox/ToyBox coerentes.
- •Segurança/exec approvals: matching de allowlist de shell-wrapper rejeita tokens
$0/$nentre aspas simples, proíbe exec separado por newline, e continua aceitando formasexec -- carrier. - •Diagnósticos de cache: campos de credenciais são removidos da saída JSONL de cache-trace enquanto preservam campos de diagnóstico não sensíveis e metadados de redação de imagens.
- •Docs Feishu: exemplos de config de canal agora usam
nameem vez debotNamepara corresponder ao schema estrito de account. - •Empacotamento de release: plugins bundled e assets de Control UI são mantidos em instalações npm publicadas, com verificações de release que falham quando artefatos embarcados estão ausentes.
Contribuidores
Dezesseis contribuidores aterrissaram correções em 3.23. Destaque especial para @vincentkoc com catorze correções abrangendo navegador, gateway, agent, plugins, segurança e infraestrutura de release.
Agradecimentos a @BunsDev (4 correções), @scoootscooob, @openperf, @futhgar, @07akioni, @Drickon, @osolmaz, @bakhtiersizhaev, @Lukavyi, @ayushozha, @RolfHegr, @drobison00, @haroldfabla2-hue, @jzakirov e @sallyom.
Notas de atualização
- •Usuários Qwen: verifique sua configuração de provider.
- •Usuários Mistral: execute
openclaw doctor --fixpara reparar configs antigas. - •Usuários de CSS personalizado: a paleta do tema Knot e nomes de classes de botão mudaram.
- •Injetores de scripts Control UI: scripts inline agora requerem hashes SHA-256 CSP.
---
3.22 abriu o peito e trocou o motor. 3.23 garantiu que cada sutura aguenta.
Mais de quarenta correções, oito patches de auth, duas regressões de navegador resolvidas, e um ecossistema de plugins que finalmente funciona limpo após a migração ClawHub. Não é trabalho glamoroso. Mas é o release que transforma a ambição arquitetural do 3.22 em algo que você pode rodar em produção sem abrir bug reports.
A lagosta está se recuperando bem. As suturas estão firmes.