3.22 arrancó la vieja arquitectura y reconstruyó los cimientos. Doce breaking changes. Un nuevo registro de plugins. Treinta parches de seguridad. Fue el mayor lanzamiento en la historia de OpenClaw.
También rompió cosas.
3.23 es el lanzamiento que se asegura de que el paciente sobreviva a la cirugía. Tres breaking changes — todos mirando hacia adelante. Más de cuarenta correcciones — la mayoría limpiando lo que 3.22 dejó al descubierto. Un día entre releases, porque algunas cosas no podían esperar.
Breaking Changes
Solo tres esta vez, y ninguno elimina algo que estés usando.
Qwen obtiene endpoints DashScope estándar
El proveedor Qwen ahora incluye endpoints DashScope estándar (pago por uso) tanto para claves API de China como globales, junto a los endpoints existentes de Coding Plan. El grupo de proveedores se renombra a Qwen (Alibaba Cloud Model Studio).
¿Por qué importa? Porque la integración anterior de Qwen solo soportaba claves de Coding Plan — un subconjunto de lo que ofrece Alibaba Cloud. Si estás en China o usas una clave DashScope global con facturación estándar, los modelos Qwen ahora funcionan de inmediato sin configuraciones de workaround.
Reorganización de Control UI
Los primitivos de botón se consolidan (btn--icon, btn--ghost, btn--xs). El tema Knot cambia a una paleta negro y rojo con ratios de contraste WCAG 2.1 AA. Las secciones de configuración — Diagnostics, CLI, Secrets, ACP, MCP — reciben iconos dedicados. El slider de redondez se reemplaza con paradas discretas. La accesibilidad mejora en toda la interfaz con aria-labels en los filtros de uso.
Si tienes CSS personalizado apuntando a las clases de botón anteriores o variables del tema Knot, revisa tus overrides.
Hashing CSP de scripts
Los bloques <script> inline en el index.html servido ahora obtienen hashes SHA-256 incluidos en la directiva CSP script-src. Los scripts inline siguen bloqueados por defecto — solo se permite el código bootstrap explícitamente hasheado. Si estabas inyectando scripts inline personalizados en Control UI, ahora serán bloqueados a menos que les añadas el hash.
Revisión del sistema de credenciales auth
Ocho correcciones en el sistema de auth y credenciales. Esta fue el área más afectada después de 3.22, y las correcciones cuentan una historia sobre lo que pasa cuando reconstruyes infraestructura debajo de un sistema en ejecución.
La corrección principal: las escrituras en tiempo real del auth-profile del gateway estaban revirtiendo credenciales recién guardadas a valores obsoletos en memoria. Pegabas un nuevo token de OpenAI, lo guardabas, y veías cómo volvía al token expirado. Los flujos de Configure, Onboard y pegado de tokens sufrían la misma causa raíz. Corregido.
Preservación de scopes de operator: la ruta de bypass de auth por dispositivo estaba eliminando silenciosamente los scopes de operator, causando que las sesiones fallaran o mostraran páginas en blanco en rutas respaldadas por read. Ahora se ignoran los tokens cacheados con scopes insuficientes, y aparece un mensaje de fallback claro cuando una conexión genuinamente carece de scope read.
Auth de canales CLI: las configuraciones de canal único ahora seleccionan automáticamente el único canal con capacidad de login. Los Channel IDs se endurecen contra abuso de cadena de prototipos y caracteres de control. Las instalaciones de canal on-demand hacen fallback limpio a instalaciones basadas en catálogo.
Autenticación ClawHub macOS (tres correcciones relacionadas): el token de login de ClawHub ahora se lee desde la ruta de macOS Application Support, con XDG config como fallback. La navegación de skills del gateway usa el estado auth autenticado en vez de hacer fallback silencioso a modo no autenticado. Las peticiones browse-all cambian a search para evitar alcanzar límites de tasa 429 no autenticados.
Soporte de proxy OAuth: el dispatcher de proxy HTTP/HTTPS configurado por env ahora se inicializa antes de las peticiones de intercambio de token y preflight, para que los entornos que requieren proxy puedan completar los flujos de inicio de sesión de MiniMax y OpenAI Codex. Anteriormente, los tokens OAuth de Codex expirados bloqueaban a los usuarios en configuraciones con proxy.
Autorización de slash commands: la autorización ya no crashea ni descarta allowlists válidas cuando la resolución de allowFrom del canal encuentra cuentas respaldadas por SecretRef sin resolver. El sistema solo hace fail closed en la ruta de inferencia del proveedor afectado.
Estabilidad del navegador: no apresures el handshake
Dos correcciones, un tema: no declares victoria antes de que el navegador esté realmente listo.
Conexión macOS Chrome: al adjuntarse a una sesión Chrome existente vía MCP, el handshake inicial se trataba como "listo" antes de que las pestañas del navegador fueran realmente usables. Esto causaba timeouts de perfil de usuario y popups repetidos de consentimiento en flujos de attach de macOS Chrome. La corrección espera a que las pestañas sean completamente usables después del attach antes de proceder.
CDP en Linux headless: en configuraciones headless Linux más lentas, un breve fallo de alcanzabilidad inicial durante la detección CDP disparaba inmediatamente un relanzamiento completo del navegador. Esto causaba regresiones en el segundo arranque/apertura del navegador — la corrección reutiliza el navegador loopback ya en ejecución después de un breve fallo de alcanzabilidad en vez de hacer fallback a detección de relanzamiento.
Ambos bugs comparten el mismo patrón: el sistema era demasiado impaciente al juzgar transiciones de estado. Un breve retraso en la respuesta se trataba como fallo, disparando rutas de recuperación costosas que empeoraban las cosas.
Ecosistema de plugins: limpieza post-ClawHub
3.22 migró el ecosistema de plugins a ClawHub. 3.23 termina de barrer.
- •Los sidecars de runtime bundled vuelven: WhatsApp
light-runtime-api.js, Matrixruntime-api.jsy otros archivos de entrada de runtime de plugins faltaban del paquete npm. Las instalaciones globales fallaban por superficies de runtime de plugin bundled faltantes. Corregido. - •Compatibilidad de instalación ClawHub: la compatibilidad de API de plugins ahora se resuelve contra la versión de runtime activa al momento de la instalación. La constante obsoleta
1.2.0que bloqueaba instalaciones de paquetes ClawHub>=2026.3.22se reemplazó con cobertura de regresión. - •Desinstalación acepta specs ClawHub:
openclaw plugins uninstall clawhub:<package>funciona de nuevo aunque la instalación registrada estuviera fijada a una versión. - •LanceDB se inicializa en el primer uso: el plugin
memory-lancedbahora inicializa LanceDB en el estado de runtime del plugin cuando el npm install bundled no lo tiene. - •La configuración obsoleta ya no es fatal: los IDs desconocidos en
plugins.allowse tratan como advertencias en vez de errores fatales. - •Limpieza de Doctor:
openclaw doctor --fixelimina referencias residuales deplugins.allowyplugins.entriesdespués de la eliminación de plugins, y deja de añadir IDs de canales integrados comowhatsappaplugins.allow. - •Correcciones de runtime Matrix y LINE: las exportaciones duplicadas de runtime-api bajo Jiti ya no crashean las instalaciones bundled de Matrix al inicio. LINE pre-exporta símbolos de runtime superpuestos antes del star export para evitar
TypeError: Cannot redefine property.
Fiabilidad de agents
Seis correcciones que hacen el comportamiento de los agents más predecible:
- •Proveedor web_search: los turnos de agent ahora usan el proveedor
web_searchdel runtime activo en vez de una selección obsoleta o por defecto. - •Clasificación de failover: los payloads genéricos
api_errorsolo son reintentables cuando incluyen señales de fallo transitorio. Los fallos de backend estilo MiniMax siguen activando el fallback de modelo, pero los errores de facturación, auth y formato ya no. - •Precisión de timeout de subagentes: las esperas de workers con timeout se reverifican contra la snapshot de runtime más reciente antes de enviar eventos de completación.
- •Bloques thinking de Anthropic: el orden de los bloques assistant thinking y
redacted-thinkingse preserva durante la sanitización de imágenes de transcripción. - •Recuperación de replay: el contenido malformado de transcripción de assistant se canonicaliza antes de la sanitización del historial de sesión.
- •Inyección de configuración de skills: la configuración de skills embebidos y env usan la snapshot de runtime resuelta activa, para que los SecretRefs de
skills.entries.<skill>.apiKeyse resuelvan correctamente durante el arranque embebido.
Endurecimiento del gateway
Cuatro correcciones para la fiabilidad del gateway:
- •Precisión de sondeo: los handshakes exitosos del gateway ya no se reportan como "inalcanzables" mientras los RPCs de detalle post-conexión aún están cargando.
- •Estabilidad de supervisión: los conflictos de lock bajo
launchdysystemdya no causan crash-loops. El proceso duplicado permanece en espera de reintento. - •Aplicación de auth: las rutas canvas ahora requieren autenticación. El reset de sesión de agent requiere scope admin.
- •Precios de OpenRouter: el refresco de precios de
openrouter/autoya no recursa infinitamente durante el bootstrap.
Correcciones de canales
Telegram recibe tres correcciones: el contexto de hilos de DM topics se completa correctamente cuando falta metadata del hilo principal. El orden de debounce de mensajes entrantes del mismo chat se preserva. Se añade asDocument como alias de forceDocument para envíos de imágenes y GIFs.
Discord: los slash commands nativos con privilegios ahora devuelven una respuesta explícita de no autorizado en vez de caer al mensaje genérico de Discord.
Voz Plivo: las claves de replay se estabilizan para que los reintentos de webhook no colisionen con entregas válidas.
Catálogos de canales externos ahora pueden sobreescribir metadata fallback incluida y respetar specs npm sobreescritas durante la configuración del canal.
Todo lo demás
- •Mistral: los defaults bundled de max-token se reducen a presupuestos de output seguros.
openclaw doctor --fixrepara configs persistidas antiguas que aún tienen límites de output de tamaño de contexto. - •CLI cron:
openclaw cron add|edit --at ... --tz <iana>ahora respeta correctamente la hora local solicitada, incluyendo límites de DST. - •Advertencias de config: se suprime la advertencia confusa de "OpenClaw más nuevo" cuando un config escrito por un release de corrección del mismo base es leído por
2026.3.23. - •Exec trust: los binarios wrapper de shell-multiplexer se preservan para verificaciones de políticas sin romper la reconstrucción de comandos aprobados.
- •Seguridad/exec approvals: el matching de allowlist de shell-wrapper rechaza tokens
$0/$ncon comillas simples, prohíbe exec separado por newlines, y sigue aceptando formasexec -- carrier. - •Diagnósticos de caché: los campos de credenciales se eliminan de la salida JSONL de cache-trace preservando campos de diagnóstico no sensibles.
- •Docs Feishu: los ejemplos de config de canales ahora usan
nameen vez debotName. - •Empaquetado de releases: los plugins bundled y assets de Control UI se retienen en las instalaciones npm publicadas.
Contribuidores
Dieciséis contribuidores aterrizaron correcciones en 3.23. Reconocimiento especial a @vincentkoc con catorce correcciones abarcando navegador, gateway, agent, plugins, seguridad e infraestructura de releases — el tipo de contribución transversal que mantiene un proyecto estable después de un lanzamiento mayor.
Gracias a @BunsDev (4 correcciones), @scoootscooob, @openperf, @futhgar, @07akioni, @Drickon, @osolmaz, @bakhtiersizhaev, @Lukavyi, @ayushozha, @RolfHegr, @drobison00, @haroldfabla2-hue, @jzakirov y @sallyom.
Notas de actualización
- •Usuarios de Qwen: revisa tu configuración de proveedor. Si usabas configs de workaround para claves DashScope estándar, ahora puedes cambiar a los endpoints nativos.
- •Usuarios de Mistral: ejecuta
openclaw doctor --fixpara reparar configs antiguas con límites de output de tamaño de contexto. - •Usuarios de CSS personalizado: la paleta del tema Knot y los nombres de clases de botón han cambiado. Revisa tus overrides.
- •Inyectores de scripts en Control UI: los scripts inline ahora requieren hashes SHA-256 de CSP.
---
3.22 abrió el pecho y reemplazó el motor. 3.23 se aseguró de que cada sutura aguante.
Más de cuarenta correcciones, ocho parches de auth, dos regresiones de navegador resueltas, y un ecosistema de plugins que finalmente funciona limpiamente después de la migración a ClawHub. No es trabajo glamoroso. Pero este es el release que convierte la ambición arquitectónica de 3.22 en algo que puedes ejecutar en producción sin abrir bug reports.
La langosta se recupera bien. Las suturas aguantan.