---
title: "OpenAI Codex 0.141 ajoute des exécuteurs distants chiffrés en Noise, un `PathUri` multi-OS, un marketplace de plugins et un pin SQLite WAL-Reset"
description: "Codex 0.141.0 (18 juin 2026) fait de Noise IK le transport par défaut entre l'orchestrateur et l'exec-server, livre une couche PathUri / NativePathString qui fait le round-trip des chemins POSIX, Windows-drive et UNC sans exposer l'encodage URI côté API, ouvre un marketplace de plugins `created-by-me-remote`, relève le timeout d'outil MCP à 300 secondes, et épingle la SQLite bundlée à 3.51.3 pour conserver le fix de corruption WAL-reset après un refresh de dépendances."
date: 2026-06-18
image: "/images/heroes/2026-06-18--openai-codex-0-141-noise-relay-cross-platform-exec.png"
author: lschvn
tags: ["ai", "security", "tooling"]
tldr:
  - "Codex 0.141.0, publié le 18 juin 2026 à 04:43 UTC, fait d'un canal Noise IK hybride (X25519 + ML-KEM-768, AES-256-GCM, SHA-256) le transport par défaut entre l'app Codex et un exec-server distant. Le relay ne voit que du chiffré ; chaque handshake est lié à l'`environment_id`, à l'`executor_registration_id` et au `stream_id` du flux, et la clé publique Noise de l'executeur est épinglée depuis le registre avant que le handshake ne se termine."
  - "Une nouvelle couche `PathUri` / `NativePathString` remplace les chemins `String` artisanaux à la frontière app-server / exec-server. Elle peut rendre le même chemin logique en POSIX, en lettre de lecteur Windows, ou en chemin UNC selon l'hôte qui le consomme, ce qui est le prérequis pour laisser un orchestrateur Mac ou Linux piloter un exécuteur Windows sans massacrer les chemins au format wire. Le rendu multi-OS, l'encodage, l'Unicode et la gestion des composants invalides sont couverts par la nouvelle suite de tests `path-uri`."
  - "Codex obtient un marketplace de plugins `created-by-me-remote` adossé au répertoire de plugins scope USER paginé, des catalogues curés spécifiques au mode d'auth, et un tier de précédence selected-plugin dans le catalogue MCP. Les plugins d'executeur sélectionnés peuvent désormais activer leurs serveurs MCP stdio par thread, et le timeout d'outil MCP par défaut passe de 60 à 300 secondes. La release épingle aussi la SQLite bundlée à 3.51.3 pour qu'un refresh de lock `libsqlite3-sys` ne puisse pas silenciieusement redescendre Codex sur la release de corruption WAL-reset."
faq:
  - question: "Qu'est-ce qui est nouveau dans OpenAI Codex 0.141.0 ?"
    answer: "Codex 0.141.0 (18 juin 2026) fait d'un relay chiffré en Noise le transport par défaut entre l'app-server Codex et les exec-servers distants, livre une couche `PathUri` / `NativePathString` pour la gestion de chemins multi-OS, ouvre un marketplace de plugins `created-by-me-remote` plus un tier de précédence selected-plugin dans le catalogue MCP, relève le timeout d'outil MCP à 300 secondes, et épingle la SQLite bundlée à 3.51.3 pour conserver le fix WAL-reset. La release corrige aussi plusieurs bugs du sandbox Windows et une classe de contournements de hook-trust à la reprise de thread `codex exec`."
  - question: "Pourquoi le relay Noise a-t-il de l'importance pour les utilisateurs Codex ?"
    answer: "Avant 0.141.0, le trafic entre l'orchestrateur et un exec-server distant transitait par un service Rendezvous qui pouvait voir en clair les appels d'outils et les réponses. Le nouveau canal Noise IK authentifie les deux endpoints avec X25519, ajoute une résistance post-quantique via ML-KEM-768, et chiffre chaque octet avec AES-256-GCM, de sorte que le relay ne voit que du ciphertext. Chaque handshake est lié à l'`environment_id`, à l'`executor_registration_id` et au `stream_id` du flux, et la clé Noise de l'executeur fournie par le registre est épinglée avant que le handshake ne se termine. Pour les équipes qui font tourner Codex contre un exec-server distant self-hosted ou tiers, c'est la différence entre faire confiance au relay et ne pas avoir à le faire."
  - question: "Qu'est-ce que `PathUri` résout concrètement ?"
    answer: "Codex formatait historiquement les chemins en `String`, ce qui cassait dès qu'un orchestrateur Mac ou Linux passait un répertoire de travail à un exécuteur Windows (ou l'inverse). `PathUri` est un nouveau type interne qui peut rendre le même chemin logique en POSIX (`/home/lou/repo`), en lettre de lecteur Windows (`C:\\Users\\lou\\repo`), ou en chemin UNC (`\\\\share\\repo`) selon l'hôte qui le consomme, et expose la conversion via les helpers `NativePathString` et `PathConvention`. La frontière de l'API app-server continue de servir aux clients des chemins natifs OS, donc l'encodage URI reste un format wire interne, pas un changement d'API publique. La PR est le prérequis pour des flux orchestrateur-vers-executeur multi-OS qui ne massacrent pas les chemins à la couture."
  - question: "Qu'est-ce que le nouveau marketplace de plugins et le tier selected-plugin ?"
    answer: "0.141.0 ajoute un marketplace `created-by-me-remote` qui surface le répertoire de plugins scope USER dans l'app-server, un flux `Load API curated marketplace by auth` qui renvoie des catalogues différents selon le mode d'auth (user, org, enterprise), et un nouveau tier de précédence selected-plugin dans le catalogue MCP. Quand un thread sélectionne un plugin, les serveurs MCP stdio de ce plugin sont activés pour le thread, obtiennent un slot de précédence distinct au-dessus des plugins auto-découverts, et sont attribués dans l'UI du catalogue MCP. Un gagnant de précédence plus basse désactivé ne peut plus laisser d'état fantôme au niveau du nom. La policy d'approbation des plugins sélectionnés est mémorisée scope-session, et n'est pas ré-écrite vers un plugin local non lié."
  - question: "Est-ce que 0.141.0 a corrigé de vrais bugs ?"
    answer: "Oui. La release épingle la SQLite bundlée à 3.51.3 pour conserver le fix de corruption WAL-reset, parce qu'un refresh de lock `libsqlite3-sys` antérieur avait fait reculer Codex de 0.37.0 vers 0.35.0 (SQLite 3.50.2), réintroduisant silencieusement le bug WAL-reset. Elle répare aussi automatiquement les credentials Windows sandbox devenues stale et donne aux commandes PowerShell plus de temps avant d'être backgroundées, corrige un cas de reprise de thread `codex exec` qui perdait le hook-trust bypass et un hook `PostToolUse` qui ratait les appels d'outils code-mode, déduplique les déclarations App et MCP de plugins en conflit, et permet à une entrée utilisateur steer d'interrompre immédiatement `wait_agent` au lieu de rester bloquée derrière."
  - question: "Qu'est-ce que ça change pour un développeur qui fait tourner Codex en local sans exec-server distant ?"
    answer: "Pour une install locale par défaut, les changements visibles côté utilisateur sont le timeout d'outil MCP qui passe de 60 à 300 secondes, le nouveau marketplace de plugins `created-by-me-remote` qui apparaît dans le browser de plugins, les nouveaux contrôles speech-append et response-entry de l'API realtime, et l'auto-resolution TUI optionnelle 60 + 60 secondes pour les prompts `request_user_input`. Le relay Noise et le travail `PathUri` sont invisibles parce que le chemin local ne traverse pas de relay, mais le même plumbing PathUri signifie qu'un futur Codex multi-OS (orchestrateur Mac + executeur Windows) peut shipper sans régression de mangling de chemins."
---

[OpenAI Codex 0.141.0](https://github.com/openai/codex/releases/tag/rust-v0.141.0) a été publié le 18 juin 2026 à 04:43 UTC, un jour après [0.140](https://github.com/openai/codex/releases/tag/rust-v0.140.0) et environ six semaines après que la ligne 0.139 a ouvert la nouvelle architecture exec-server. La release est la plus grosse drop Codex de la série 0.13x : elle pose un transport chiffré en Noise par défaut entre l'orchestrateur et les exécuteurs distants, une nouvelle couche `PathUri` interne qui rend l'orchestration multi-OS tractable, un marketplace de plugins `created-by-me-remote`, et un vrai fix de bug pour une régression SQLite qui s'était silencieusement réintroduite. Il y a aussi du ménage significatif dans le sandbox Windows et les surfaces realtime/TUI.

## Noise IK devient le transport par défaut

Le changement principal, c'est que le [transport `exec-server` est désormais Noise](https://github.com/openai/codex/pull/26245) de bout en bout. L'architecture précédente relayait le trafic JSON-RPC entre l'orchestrateur et l'exécuteur distant à travers un service « Rendezvous » qui pouvait voir en clair les appels d'outils et les réponses. Le nouveau transport est un canal Noise IK hybride construit sur [Clatter](https://github.com/openai/clatter), avec X25519 pour l'accord de clé, ML-KEM-768 pour la résistance post-quantique, AES-256-GCM pour le chiffrement symétrique, et SHA-256 pour le transcript du handshake. Le relay ne voit que des frames chiffrées.

Le handshake est lié à trois identifiants : l'`environment_id` de l'exécuteur distant, son `executor_registration_id`, et le `stream_id` par flux. La clé publique Noise de l'exécuteur est récupérée depuis un bundle du registre et épinglée avant que le handshake ne se termine, ce qui ferme l'attaque évidente de « swap the key during reconnect ». L'autorisation du harness est portée à l'intérieur du handshake chiffré, pas dans un header que le relay peut réécrire. Les frames sont ordonnées contre les nonces Noise, les gros messages JSON-RPC sont fragmentés en records bornés, et les payloads de handshake, frames, streams et reassembly de message sont tous size-bounded pour qu'un relay malveillant ne puisse pas épuiser la mémoire en envoyant des frames hors taille.

Pour les équipes qui font tourner Codex contre des exécuteurs distants self-hosted ou tiers, l'effet pratique est que le relay n'est plus trusted by construction. Les commits de suivi dans la même release ajoutent un refresh d'URL signées à la reconnexion, un environnement Noise rendezvous, une reprise de session après déconnexion, et un backoff de retry borné sur la recovery du registre, donc le transport chiffré est aussi durable à travers les hoquets réseau, pas juste chiffré. Le [rachat de Bun par Anthropic pour l'infrastructure de coding IA](/articles/2026-04-19-bun-joins-anthropic-ai-coding-infrastructure) plus tôt cette année était le moment « le runtime est l'agent » ; 0.141 est le moment « le relay n'est qu'un fil ».

## `PathUri` et la couture orchestrateur multi-OS

Le deuxième morceau de plumbing est [`path-uri: render native paths across platforms`](https://github.com/openai/codex/pull/27819) et son frère [`PathUri` in filesystem permission paths for exec-server](https://github.com/openai/codex/pull/28367). Le code précédent formatait les chemins en `String` des deux côtés de la couture orchestrateur/exec-server, ce qui cassait dès qu'un orchestrateur Mac passait un répertoire de travail comme `/Users/lou/repo` à un exécuteur Windows, ou l'inverse. `PathUri` est un nouveau type interne qui peut rendre le même chemin logique en POSIX (`/home/lou/repo`), en lettre de lecteur Windows (`C:\Users\lou\repo`), ou en chemin UNC (`\\share\repo`) selon l'hôte qui le consomme, avec des helpers explicites `PathConvention` et `NativePathString` pour les trois personnalités.

La migration est graduelle et délibérément invisible au niveau de l'API publique app-server. Le `PathConvention` rend le chemin correctement pour l'hôte qui possède l'environnement, la frontière `app-server` traduit en chemins `String` natifs OS pour les clients, et l'encodage URI reste un format wire interne. La nouvelle suite de tests `path-uri` couvre le rendu multi-host, l'encodage, l'Unicode, et le rejet de composant invalide. C'est le même plumbing qui permet à l'exec-server de respecter le `cwd` et le shell de l'environnement distant ([#28122](https://github.com/openai/codex/pull/28122)) et de porter `PathUri` à travers la couche unified-exec, de sorte qu'un orchestrateur Mac peut piloter un exécuteur Windows sans régression de mangling de chemins à la couture.

C'est le genre de travail qui ne sort pas dans un tableau de benchmarks, mais qui est la raison pour laquelle un futur Codex multi-OS (orchestrateur serveur Linux, exécuteur workstation Windows) peut shipper. Le [travail Vite 8.1 beta sur les importmaps](/articles/2026-06-15-vite-8-1-beta-wasm-esm-chunk-importmap) et le [fix esbuild 0.28.1 sur la traversée de chemin Windows](/articles/2026-06-14-esbuild-0-28-1-deno-rce-windows-path-traversal) sont dans la même catégorie de plumbing multi-OS ; la différence est que la couture de Codex est sur le fil, pas sur le disque.

## Un marketplace de plugins et un vrai tier de catalogue MCP

Le troisième batch de changements construit l'histoire plugin. Codex 0.141.0 ajoute un [marketplace de plugins `created-by-me-remote`](https://github.com/openai/codex/pull/28203) adossé au répertoire de plugins scope USER paginé, le surface via le protocole app-server v2 avec des schémas regénérés, et ajoute un flux [`Load API curated marketplace by auth`](https://github.com/openai/codex/pull/28383) qui renvoie des catalogues différents selon le mode d'auth (user, org, enterprise). Les plugins d'executeur sélectionnés peuvent désormais [activer leurs serveurs MCP stdio par thread](https://github.com/openai/codex/pull/27870), et le [tier de précédence selected-plugin](https://github.com/openai/codex/pull/27884) dans le catalogue MCP donne à un plugin sélectionné un slot distinct au-dessus des plugins auto-découverts, avec l'attribution portée directement sur l'entrée de catalogue.

Le changement de catalogue a de l'importance parce que l'ordre de résolution précédent laissait silencieusement un gagnant de précédence plus basse désactivé laisser un état fantôme au niveau du nom, et un outil MCP gagnant ne pouvait pas être attribué de manière fiable au package sélectionné. Le nouveau tier corrige les deux, et le connection manager retient la policy d'approbation d'outil du serveur sélectionné gagnant pour qu'un enregistrement sélectionné ne puisse pas hériter d'un comportement d'approbation d'un plugin local perdant. Le [timeout d'outil MCP par défaut passe de 60 à 300 secondes](https://github.com/openai/codex/pull/28234), ce qui est la bonne forme pour des outils MCP long-running (runs CI, génération d'images, jobs browser headless) et élimine une classe de rapports « l'outil a timeout avant de finir ».

Le travail plugin est la deuxième moitié de la même histoire que les articles sur [Project Glasswing d'Anthropic](articles/2026-04-07-anthropic-project-glasswing-ai-finds-zero-days-faster-than-humans) et la [couverture de GLM-5.2 comme agent de coding long-horizon](/articles/2026-06-16-glm-5-2-long-horizon-deep-dive) ne cessent de tourner en boucle : la surface d'outils de l'agent est le produit, et le marketplace est ce qui rend la surface composable.

## Le fix SQLite WAL-reset et les autres corrections de bugs

Le fix de bug le plus important de 0.141.0 est discret : [`Pin bundled SQLite to fixed WAL-reset version`](https://github.com/openai/codex/pull/27992). SQLite a documenté un bug de corruption WAL reset dans les release notes de la 3.51.3, et SQLx 0.9 accepte une plage `libsqlite3-sys` large. Un refresh de dépendance non lié avait fait reculer Codex de `libsqlite3-sys 0.37.0` (SQLite 3.51.3) vers 0.35.0 (SQLite 3.50.2), réintroduisant silencieusement le bug. 0.141.0 épingle le bundle pour qu'un futur refresh de lock ne puisse pas répéter la downgrade. C'est exactement la classe de panne « votre gestionnaire de dépendances vous a silencieusement downgradé » que le [travail pnpm 11.7 frozenStore + vérification de lockfile](/articles/2026-06-17-pnpm-11-7-frozen-store-publish-batch) a été conçu pour faire remonter.

La release corrige aussi plusieurs régressions du sandbox Windows : une [auto-récupération de credentials Windows sandbox devenues stale](https://github.com/openai/codex/pull/27944), un [unified exec yield floor](https://github.com/openai/codex/pull/27086) qui donne aux commandes PowerShell plus de temps avant d'être backgroundées, un shared Windows sandbox session runner extrait du chemin inline, et un hidden Windows sandbox wrapper entrypoint. Le chemin `codex exec` thread-start préserve désormais le hook-trust bypass à la reprise et les hooks `PostToolUse` rejettent correctement les appels d'outils code-mode. Une entrée utilisateur steer peut immédiatement interrompre `wait_agent` au lieu de rester bloquée derrière. L'API realtime gagne un contrôle speech-append, un toggle pour le contexte de démarrage realtime, et un timer TUI d'auto-resolution pour les prompts `request_user_input` qui lance une grace period cachée de 60 secondes, puis un countdown visible de 60 secondes, puis soumet une réponse vide si l'utilisateur n'interagit pas.

0.141.0 est le genre de release qui a l'air routinière de l'extérieur et qui est structurellement un milestone de l'intérieur. Le relay Noise et la couche `PathUri` sont les deux morceaux de plumbing qui doivent être en place pour que Codex multi-host puisse shipper, le marketplace de plugins est ce qui rend la surface d'outils composable, et le pin SQLite est le genre de fix de bug discret qui empêche la prochaine panne d'être une régression de la précédente. Aucune action n'est requise côté utilisateur ; l'upgrade est sûr à prendre dès que votre CI est prêt.
