OpenAI Codex 0.141 Adds Noise-Encrypted Remote Executors, Cross-OS `PathUri`, a Plugin Marketplace, and a SQLite WAL-Reset Pin

OpenAI Codex 0.141 Adds Noise-Encrypted Remote Executors, Cross-OS `PathUri`, a Plugin Marketplace, and a SQLite WAL-Reset Pin

lschvn

OpenAI Codex 0.141.0 shipped on June 18, 2026 at 04:43 UTC, a day after 0.140 and roughly six weeks after the 0.139 line opened the new exec-server architecture. The release is the largest single Codex drop in the 0.13x series: it lands a default Noise-encrypted transport between the orchestrator and remote executors, a new internal PathUri layer that makes cross-OS orchestration tractable, a created-by-me-remote plugin marketplace, and a real bug fix for a SQLite regression that had silently slipped back in. There is also meaningful housekeeping in the Windows sandbox and the realtime/TUI surfaces.

Noise IK is the default transport

The headline change is that the exec-server transport is now Noise end-to-end. The previous architecture forwarded JSON-RPC traffic between the orchestrator and the remote executor through a "Rendezvous" service that could see plaintext tool calls and responses. The new transport is a hybrid Noise IK channel built on Clatter, with X25519 for the key agreement, ML-KEM-768 for post-quantum resistance, AES-256-GCM for the symmetric encryption, and SHA-256 for the handshake transcript. The relay only sees encrypted frames.

The handshake is bound to three identifiers: the environment_id of the remote executor, its executor_registration_id, and the per-stream stream_id. The executor's Noise public key is fetched from a registry bundle and pinned before the handshake completes, which closes the obvious "swap the key during reconnect" attack. The harness authorization is carried inside the encrypted handshake, not in a header the relay can rewrite. Frames are ordered against Noise nonces, large JSON-RPC messages are fragmented into bounded records, and handshake payloads, frames, streams, and message reassembly are all size-bounded so a malicious relay cannot exhaust memory by sending oversize frames.

For teams running Codex against self-hosted or third-party remote executors, the practical effect is that the relay is now untrusted by construction. The follow-up commits in the same release add signed-URL refresh on reconnect, a Noise rendezvous environment, session resumption after disconnect, and bounded retry backoff on registry recovery, so the encrypted transport is also durable across network blips rather than just encrypted. Bun joining Anthropic's AI coding infrastructure earlier this year was the moment "the runtime is the agent"; 0.141 is the moment "the relay is just a wire".

PathUri and the cross-OS orchestrator seam

The second piece of plumbing is path-uri: render native paths across platforms and its sibling PathUri in filesystem permission paths for exec-server. The previous code path formatted paths as String on both sides of the orchestrator/exec-server seam, which broke the moment a Mac orchestrator handed a working directory like /Users/lou/repo to a Windows executor, or vice versa. PathUri is a new internal type that can render the same logical path as POSIX (/home/lou/repo), a Windows drive letter (C:\Users\lou\repo), or a UNC path (\\share\repo) depending on the host that consumes it, with explicit PathConvention and NativePathString helpers for the three personalities.

The migration is gradual and deliberately invisible at the public app-server API. The PathConvention renders the path correctly for the host that owns the environment, the app-server boundary translates to OS-native String paths for clients, and the URI encoding stays an internal wire format. The new path-uri test suite covers cross-host rendering, encoding, Unicode, and invalid component rejection. The same plumbing is what allows the exec-server to honor the remote environment's cwd and shell (#28122) and to carry PathUri through the unified-exec layer, so a Mac orchestrator can drive a Windows executor without a path-mangling regression at the seam.

This is the kind of work that does not show up in a benchmark table, but is the reason a future cross-OS Codex (Linux server orchestrator, Windows workstation executor) can ship at all. The Vite 8.1 beta importmap work and the recent esbuild 0.28.1 Windows path-traversal fix both sit in the same cross-OS plumbing category; the difference is that Codex's seam is on the wire, not on disk.

A plugin marketplace and a real MCP catalog tier

The third batch of changes builds out the plugin story. Codex 0.141.0 adds a created-by-me-remote plugin marketplace backed by the paginated USER-scope plugin directory, surfaces it through the app-server v2 protocol with regenerated schemas, and adds a Load API curated marketplace by auth flow that returns different catalogs depending on the auth mode (user, org, enterprise). Selected executor plugins can now activate their stdio MCP servers per thread, and the selected-plugin precedence tier in the MCP catalog gives a selected plugin a distinct slot above auto-discovered plugins, with attribution carried directly on the catalog registration.

The catalogue change matters because the previous resolution order silently let a disabled lower-precedence winner leave stale name-level state behind, and a winning MCP tool could not be attributed to the selected package reliably. The new tier fixes both, and the connection manager retains the winning selected server's tool approval policy so a selected registration cannot inherit approval behavior from a losing local plugin. The MCP tool timeout default is raised from 60 to 300 seconds, which is the right shape for long-running MCP tools (CI runs, image generation, headless browser jobs) and removes a class of "tool timed out before it could finish" reports.

The plugin work is the second half of the same story the Anthropic Project Glasswing piece and the GLM-5.2 long-horizon coding agent coverage keep circling: the agent's tool surface is the product, and the marketplace is what makes the surface composable.

The SQLite WAL-reset fix and other bug fixes

The most important bug fix in 0.141.0 is a quiet one: Pin bundled SQLite to fixed WAL-reset version. SQLite documented a WAL reset corruption bug in 3.51.3's release notes, and SQLx 0.9 accepts a broad libsqlite3-sys range. An unrelated dependency refresh had moved Codex from libsqlite3-sys 0.37.0 (SQLite 3.51.3) back to 0.35.0 (SQLite 3.50.2), silently reintroducing the bug. 0.141.0 pins the bundle so a future lock refresh cannot repeat the downgrade. This is exactly the class of "your dependency manager quietly downgraded you" failure that the pnpm 11.7 frozenStore + lockfile verification work was designed to surface.

The release also fixes several Windows sandbox regressions: a stale Windows sandbox credentials auto-recovery, a unified exec yield floor that gives PowerShell commands more time before backgrounding, a shared Windows sandbox session runner extracted from the inline path, and a hidden Windows sandbox wrapper entrypoint. The codex exec thread-start path now preserves hook-trust bypass on resume and PostToolUse hooks correctly reject code-mode tool calls. A steered user input can immediately interrupt wait_agent instead of getting stuck behind it. The realtime API gains a speech-append control, a toggle for realtime startup context, and a TUI auto-resolution timer for request_user_input prompts that runs a 60-second hidden grace period, then a 60-second visible countdown, then submits an empty answer response if the user does not interact.

0.141.0 is the kind of release that looks routine from the outside and is structurally a milestone from the inside. The Noise relay and the PathUri layer are the two pieces of plumbing that have to be in place for cross-host Codex to ship, the plugin marketplace is what makes the tool surface composable, and the SQLite pin is the kind of quiet bug fix that prevents the next outage from being a regression of the last one. None of it requires user action; the upgrade is safe to take as soon as your CI is ready.

Frequently Asked Questions

Related articles

More coverage with overlapping topics and tags.

Claude Code Issue #74066: Users Report Cross-Workspace Context Bleed on Sonnet 5, Anthropic Has Not Yet Responded
security

Claude Code Issue #74066: Users Report Cross-Workspace Context Bleed on Sonnet 5, Anthropic Has Not Yet Responded

An open bug filed against Claude Code on 2026-07-04 by an [Enterprise ZDR](https://docs.anthropic.com/en/docs/build-with-claude/zero-data-retention) user describes a working session on Sonnet 5 that suddenly starts referencing an unrelated Minecraft temple build, then doubles down on the wrong task in its recap. The reporter (GitHub: [@milesrichardson-edb](https://github.com/milesrichardson-edb), issue [anthropics/claude-code#74066](https://github.com/anthropics/claude-code/issues/74066)) is on Enterprise Zero Data Retention, the tier Anthropic specifically advertises as session-isolated. Triage on the reporter's local session JSONL at `~/.claude/projects/<encoded-cwd>/<session-id>.jsonl` finds the leaked text is not in the transcript, ruling out a local context bleed by file overlap. Four other users in the comments (with work histories going back to last year) describe near-identical behavior across Claude Code, Claude Mobile, and Claude deep research. The most plausible architectural fit is shared KV-cache state in inference ([per @yv3nne in the comments](https://github.com/anthropics/claude-code/issues/74066#issuecomment-4880448776)), but no Anthropic engineer has commented on the issue in the 22 hours since it was filed, and the issue reached the top of [Hacker News](https://news.ycombinator.com/item?id=42481789) on 2026-07-04. The tone in the thread is split: half suspecting a real platform cache reuse, half suspecting a [sonnet-5-specific hallucination triggered by a Pygments lexer](https://github.com/anthropics/claude-code/issues/74066#issuecomment-4880334711). Both readings are credible.
Claude Code 2.1.199 Adds Stacked Slash-Skill Invocations, Fixes Subagent Error Reporting, the Background-Agent Daemon Crash Loop on Linux, and the Streaming-Response Discard Bug
ai

Claude Code 2.1.199 Adds Stacked Slash-Skill Invocations, Fixes Subagent Error Reporting, the Background-Agent Daemon Crash Loop on Linux, and the Streaming-Response Discard Bug

Anthropic released Claude Code [v2.1.199](https://github.com/anthropics/claude-code/releases/tag/v2.1.199) on 2026-07-02, one day after the v2.1.198 feature release (Chrome GA, background-agent auto-PR, /dataviz, Gateway on AWS) and two days after v2.1.197 made Sonnet 5 the default model. v2.1.199 is a bug-fix release with 24 entries: one new feature (stacked slash-skill invocations load up to 5 leading skills in one prompt), and a long list of reliability fixes for subagent error reporting, the background-agent daemon on Linux, streaming-response preservation on mid-stream API errors, SSL/TLS error handling behind corporate proxies, plan mode tool-call handling, and a per-env retry policy that no longer caps the user-tunable retry count at 15. Most of the items are in the background-agent / subagent area, which is consistent with the v2.1.197 + v2.1.198 direction of treating delegation as the product surface for Sonnet 5.
Claude Code 2.1.198 Makes Claude in Chrome Generally Available, Lets Background Agents Commit, Push, and Open Draft PRs, Adds `/dataviz` Skill, and Brings Claude Platform on AWS to the Gateway
ai

Claude Code 2.1.198 Makes Claude in Chrome Generally Available, Lets Background Agents Commit, Push, and Open Draft PRs, Adds `/dataviz` Skill, and Brings Claude Platform on AWS to the Gateway

Anthropic released Claude Code [v2.1.198](https://github.com/anthropics/claude-code/releases/tag/v2.1.198) on 2026-07-01T20:45:36Z, the second consecutive day of Claude Code shipping after v2.1.197 (the Sonnet 5 default release) the day before. The headline change is that Claude in Chrome is now generally available inside Claude Code: the browser-side assistant that was a research preview moves to a stable channel and is no longer gated behind a feature flag or a waitlist. The release also lands the first end-to-end automation for background agents in `claude agents`, which now commit, push, and open a draft pull request when they finish code work in a worktree, instead of stopping to ask for permission. Other notable additions: a `/dataviz` skill for chart and dashboard design with a runnable color-palette validator, a Gateway upstream for Claude Platform on AWS (`anthropicAws`) with model-not-found responses advancing the failover chain, a built-in Explore agent that now inherits the main session's model (capped at opus) instead of running on Haiku, and subagents that inherit the parent session's extended thinking configuration. The release also removes the `/agents` wizard and replaces it with the conversational flow, fixes a long list of reliability bugs around background agents, network drops, and platform auth, and improves syntax highlighting by upgrading to highlight.js 11.

Comments

Log in Log in to join the conversation.

No comments yet. Be the first to share your thoughts.