3.22 a arraché l'ancienne architecture et reconstruit les fondations. Douze breaking changes. Un nouveau registre de plugins. Trente correctifs de sécurité. C'était le plus gros release de l'histoire d'OpenClaw.
Ça a aussi cassé des choses.
3.23 est le release qui s'assure que le patient survit à la chirurgie. Trois breaking changes — tous tournés vers l'avenir. Plus de quarante correctifs — la plupart pour nettoyer ce que 3.22 avait exposé. Un jour entre les deux releases, parce que certains problèmes ne pouvaient pas attendre.
Breaking Changes
Seulement trois cette fois, et aucun ne supprime quelque chose que vous utilisez.
Qwen obtient des endpoints DashScope standard
Le fournisseur Qwen propose désormais des endpoints DashScope standard (paiement à l'usage) pour les clés API chinoises et globales, aux côtés des endpoints Coding Plan existants. Le groupe de fournisseurs est renommé Qwen (Alibaba Cloud Model Studio).
Pourquoi c'est important : l'intégration Qwen précédente ne supportait que les clés Coding Plan — un sous-ensemble de l'offre Alibaba Cloud. Si vous êtes en Chine ou utilisez une clé DashScope globale avec facturation standard, les modèles Qwen fonctionnent maintenant directement sans configuration de contournement.
Refonte de Control UI
Les primitives de bouton sont consolidées (btn--icon, btn--ghost, btn--xs). Le thème Knot passe à une palette noir et rouge avec des ratios de contraste WCAG 2.1 AA. Les sections de configuration — Diagnostics, CLI, Secrets, ACP, MCP — reçoivent des icônes dédiées. Le curseur d'arrondi est remplacé par des paliers discrets. L'accessibilité est améliorée avec des aria-labels sur les filtres d'utilisation.
Si vous avez du CSS personnalisé ciblant les anciennes classes de bouton ou les variables du thème Knot, vérifiez vos surcharges.
Hachage CSP des scripts
Les blocs <script> inline dans le index.html servi obtiennent désormais des hachages SHA-256 inclus dans la directive CSP script-src. Les scripts inline restent bloqués par défaut — seul le code bootstrap explicitement haché est autorisé. Si vous injectiez des scripts inline personnalisés dans Control UI, ils seront désormais bloqués sauf si vous les hachez.
Refonte du système d'identifiants auth
Huit correctifs dans le système auth et identifiants. C'était la zone la plus touchée après 3.22.
Le correctif principal : les écritures en temps réel du profil auth du gateway ramenaient les identifiants fraîchement sauvegardés aux anciennes valeurs en mémoire. Vous colliez un nouveau token OpenAI, vous le sauviez, et vous le voyiez revenir au token expiré. Les flux Configure, Onboard et collage de token souffraient tous de la même cause racine. Corrigé.
Préservation du scope operator : le chemin de contournement auth par appareil supprimait silencieusement les scopes operator. Les tokens en cache avec des scopes insuffisants sont maintenant ignorés, et un message de repli clair apparaît quand une connexion manque réellement de scope read.
Auth des canaux CLI : les configurations mono-canal sélectionnent automatiquement le seul canal capable de login. Les Channel IDs sont renforcés contre les abus de chaîne de prototypes et de caractères de contrôle.
Authentification ClawHub macOS (trois correctifs liés) : le token de login ClawHub est maintenant lu depuis le chemin macOS Application Support, avec XDG config en repli. La navigation des skills du gateway utilise l'état auth authentifié au lieu de retomber silencieusement en mode non authentifié.
Support proxy OAuth : le dispatcher proxy HTTP/HTTPS configuré par env est maintenant initialisé avant les requêtes d'échange de token et de preflight.
Autorisation des slash commands : l'autorisation ne crashe plus et ne supprime plus les allowlists valides quand la résolution allowFrom du canal rencontre des comptes SecretRef non résolus.
Stabilité du navigateur : ne pas précipiter le handshake
Deux correctifs, un thème : ne pas déclarer victoire avant que le navigateur soit réellement prêt.
Connexion macOS Chrome : lors de l'attachement à une session Chrome existante via MCP, le handshake initial était traité comme "prêt" avant que les onglets soient réellement utilisables. Cela causait des timeouts de profil utilisateur et des popups de consentement répétés. Le correctif attend que les onglets soient pleinement utilisables après l'attachement.
CDP Linux headless : sur des configurations headless Linux plus lentes, un bref échec de joignabilité initial déclenchait immédiatement un relancement complet du navigateur. Le correctif réutilise le navigateur loopback déjà en cours d'exécution après un bref échec au lieu de retomber sur la détection de relancement.
Les deux bugs partagent le même schéma : le système était trop pressé de juger les transitions d'état.
Écosystème de plugins : nettoyage post-ClawHub
3.22 a migré l'écosystème de plugins vers ClawHub. 3.23 termine le ménage.
- •Les sidecars runtime empaquetés sont de retour : WhatsApp
light-runtime-api.js, Matrixruntime-api.jset d'autres fichiers d'entrée runtime de plugins manquaient du paquet npm. Corrigé. - •Compatibilité d'installation ClawHub : la compatibilité API des plugins est maintenant résolue contre la version runtime active au moment de l'installation.
- •La désinstallation accepte les specs ClawHub :
openclaw plugins uninstall clawhub:<package>fonctionne à nouveau. - •LanceDB s'initialise au premier usage : le plugin
memory-lancedbinitialise maintenant LanceDB automatiquement dans l'état runtime du plugin. - •La config obsolète n'est plus fatale : les IDs inconnus dans
plugins.allowsont traités comme des avertissements plutôt que des erreurs fatales. - •Nettoyage Doctor :
openclaw doctor --fixsupprime les références résiduelles après la suppression de plugins. - •Correctifs runtime Matrix et LINE : les exports dupliqués de runtime-api sous Jiti ne crashent plus les installations empaquetées de Matrix au démarrage.
Fiabilité des agents
Six correctifs pour un comportement d'agent plus prévisible :
- •Fournisseur web_search : les tours d'agent utilisent maintenant le fournisseur
web_searchdu runtime actif au lieu d'une sélection obsolète ou par défaut. Si vous avez configuré un fournisseur de recherche spécifique, il est maintenant réellement utilisé. - •Classification de failover : les payloads génériques
api_errorne sont retentables que lorsqu'ils incluent des signaux de défaillance transitoire. Les pannes backend de type MiniMax déclenchent toujours le fallback de modèle, mais les erreurs de facturation, d'auth et de format ne le font plus. - •Précision du timeout des sous-agents : les attentes de workers expirés sont revérifiées contre le dernier snapshot runtime avant l'envoi des événements de complétion, de sorte que les workers terminés rapidement ne sont plus faussement signalés comme expirés.
- •Blocs thinking Anthropic : l'ordre des blocs assistant thinking et
redacted-thinkingest préservé lors de la sanitisation des images de transcription, empêchant les tours suivants de déclencher la validation unmodified-thinking d'Anthropic. - •Récupération de replay : le contenu de transcription assistant malformé est canonicalisé avant la sanitisation de l'historique de session, de sorte que les tours legacy ou corrompus ne font plus crasher les chemins de Pi replay et de récupération des sous-agents.
- •Injection de config de skills : la config et l'env des skills embarqués utilisent le snapshot runtime résolu actif, de sorte que les SecretRefs de
skills.entries.<skill>.apiKeysont correctement résolus lors du démarrage embarqué.
Renforcement du gateway
Quatre correctifs pour la fiabilité du gateway :
- •Précision du sondage : les handshakes gateway réussis ne sont plus signalés comme "injoignables" pendant que les RPCs de détail post-connexion sont encore en chargement.
- •Stabilité de supervision : les conflits de verrou sous
launchdetsystemdne causent plus de boucles de crash. - •Application de l'auth : les routes canvas nécessitent maintenant une authentification. Le reset de session agent nécessite le scope admin.
- •Tarification OpenRouter : le rafraîchissement des prix
openrouter/autone recurse plus indéfiniment pendant le bootstrap.
Correctifs de canaux
Telegram reçoit trois correctifs : le contexte de threading des DM topics est correctement rempli. L'ordre de debounce des messages entrants du même chat est préservé. asDocument est ajouté comme alias de forceDocument pour les envois d'images et GIFs.
Discord : les slash commands natifs privilégiés retournent maintenant une réponse explicite non autorisée.
Voix Plivo : les clés de replay sont stabilisées pour que les retentatives webhook ne collisionnent pas avec les livraisons valides.
Les catalogues de canaux externes peuvent maintenant surcharger les métadonnées fallback livrées.
Tout le reste
- •Mistral : les defaults max-token empaquetés sont abaissés à des budgets de sortie sûrs.
openclaw doctor --fixrépare les anciennes configs persistées. - •CLI cron :
openclaw cron add|edit --at ... --tz <iana>respecte maintenant correctement l'heure locale demandée, y compris les limites DST. - •Avertissements config : l'avertissement confus "OpenClaw plus récent" est supprimé pour les releases de correction same-base.
- •Exec trust : les binaires wrapper shell-multiplexer sont préservés pour les vérifications de politique.
- •Sécurité/exec approvals : le matching d'allowlist shell-wrapper rejette les tokens
$0/$nentre guillemets simples. - •Diagnostics cache : les champs d'identifiants sont supprimés de la sortie JSONL cache-trace.
- •Docs Feishu : les exemples de config de canal utilisent maintenant
nameau lieu debotName. - •Packaging release : les plugins empaquetés et les assets Control UI sont retenus dans les installations npm publiées.
Contributeurs
Seize contributeurs ont atterri des correctifs dans 3.23. Mention spéciale à @vincentkoc avec quatorze correctifs couvrant navigateur, gateway, agent, plugins, sécurité et infrastructure de release.
Merci à @BunsDev (4 correctifs), @scoootscooob, @openperf, @futhgar, @07akioni, @Drickon, @osolmaz, @bakhtiersizhaev, @Lukavyi, @ayushozha, @RolfHegr, @drobison00, @haroldfabla2-hue, @jzakirov et @sallyom.
Notes de mise à jour
- •Utilisateurs Qwen : vérifiez votre configuration fournisseur. Si vous utilisiez des configs de contournement pour les clés DashScope standard, vous pouvez maintenant passer aux endpoints natifs.
- •Utilisateurs Mistral : exécutez
openclaw doctor --fixpour réparer les anciennes configs avec des limites de sortie de taille contexte. - •Utilisateurs CSS personnalisé : la palette du thème Knot et les noms de classes de bouton ont changé.
- •Injecteurs de scripts Control UI : les scripts inline nécessitent maintenant des hachages SHA-256 CSP.
---
3.22 a ouvert la poitrine et remplacé le moteur. 3.23 s'est assuré que chaque suture tient.
Plus de quarante correctifs, huit patchs auth, deux régressions navigateur résolues, et un écosystème de plugins qui fonctionne enfin proprement après la migration ClawHub. Pas un travail glamour. Mais c'est ce release qui transforme l'ambition architecturale de 3.22 en quelque chose que vous pouvez réellement faire tourner en production sans ouvrir de bug reports.
Le homard se remet bien. Les sutures tiennent.