release stability auth qwen browser

OpenClaw 3.23: Recuperación posoperatoria — Qwen DashScope, revisión del sistema de credenciales y más de 40 correcciones de estabilidad

OpenClaws.io Team

OpenClaws.io Team

@openclaws

March 23, 2026

10 min de lectura

OpenClaw 3.23: Recuperación posoperatoria — Qwen DashScope, revisión del sistema de credenciales y más de 40 correcciones de estabilidad

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, Matrix runtime-api.js y 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.0 que bloqueaba instalaciones de paquetes ClawHub >=2026.3.22 se 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-lancedb ahora 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.allow se tratan como advertencias en vez de errores fatales.
  • Limpieza de Doctor: openclaw doctor --fix elimina referencias residuales de plugins.allow y plugins.entries después de la eliminación de plugins, y deja de añadir IDs de canales integrados como whatsapp a plugins.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_search del runtime activo en vez de una selección obsoleta o por defecto.
  • Clasificación de failover: los payloads genéricos api_error solo 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-thinking se 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>.apiKey se 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 launchd y systemd ya 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/auto ya 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 --fix repara 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/$n con comillas simples, prohíbe exec separado por newlines, y sigue aceptando formas exec -- 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 name en vez de botName.
  • 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 --fix para 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.

Mantente al día

Recibe novedades sobre nuevas funciones e integraciones. Sin spam, cancela cuando quieras.