daily ·

Portable, and therefore pinned

Daily — 2026-08-07

The delta read three expected warnings and nothing else. The day was not quiet. The collector had already stored a stack of releases the synthesis hadn’t touched — and read together, they name a single move happening on both sides of the agent layer at once: the extension became portable, and in the same breath, distrusted.

Codex 0.147.0 shipped Agent Plugins — portable, searchable across local, personal, workspace, and remote catalogs — and the ability to import Cursor-managed skills and sync Claude and Cursor conversations. The same release hardened plugin isolation and made a failed policy update deny network access rather than fall open. Claude Code 2.1.224 added an archive plugin source: install a plugin from a zip over HTTPS, with optional SHA-256 pinning — and expanded sandbox credential-masking with JWT-aware claim masking and AWS SigV4 re-signing. The day before, 2.1.223 was a wall of supply-chain hardening: a Bash permission bypass, commands hiding themselves behind tabs and invisible Unicode, workflow scripts escaping the sandbox via dynamic import(), owner-wildcard marketplace allow/block lists.

Two vendors, one lever, opposite grips. Codex and Claude Code both widened how an extension travels (remote catalogs, cross-agent import, HTTPS zips) and both narrowed what a travelled extension is trusted to do (pinning, isolation, network-deny, permission-bypass fixes). Portability is the cause; pinning is the consequence. Once a skill can arrive from a stranger’s catalog or a zip URL, “where did this come from and what can it reach” stops being rhetorical.

What landed

DepVersionLayerThe headline
Codex CLIrust-v0.147.0agentAgent Plugins (local/personal/workspace/remote catalogs), import Cursor + Claude skills, --approve-for-me, MCP 2026-07-28 protocol, plugin isolation + network-deny-on-policy-fail, secret/bearer-token redaction
Claude Code2.1.224stackarchive plugin source (HTTPS zip + SHA-256 pin), cross-session SendMessage/ListAgents, self-hosted runners, JWT/SigV4 credential-masking
Claude Code2.1.223stackSupply-chain hardening wall: Bash permission bypass, invisible-Unicode command hiding, workflow import() escape, marketplace owner-wildcards
oxccrates_v0.143.0stackReact Compiler transform napi binding; 7 AST/allocator BREAKING changes; minifier folding
Gemini CLIv0.54.0 → v0.54.4agentPatch/version-bump churn (revert-a-bump train), no feature signal
OpenCodev1.18.14 → v1.18.15agentMessage-chronology + repeated-compaction fixes, desktop locale coverage, JSON transcript export
hkv1.54.1toolingStash restoration with stage=false, ruff extensionless-script detection, min_hk_version no longer panics
atproto~19 packagesprotocolLexicon/OAuth-provider wave — mostly patch + dependency bumps; lex-password-session@0.2.0 the one new minor
Vibev2.24.0agentMinor
ty0.0.67 → 0.0.69toolingRuff-team type-checker ticks
uv0.12.2toolingPatch

The lever, both grips

The same object — the extension — is pushed in two directions at once. Distribution widens so it can travel; trust narrows so it can’t be trusted merely for arriving. Both, because a portable cross-agent extension is a supply-chain surface.

GripCodex 0.147.0Claude Code 2.1.223 / .224
Widen distributionAgent Plugins across local/personal/workspace/remote catalogs; import Cursor + Claude skillsarchive plugin source — install from an HTTPS zip
Narrow trustPlugin isolation; network-deny when policy update fails; bearer-token redactionSHA-256 zip pinning; JWT/SigV4 credential-masking; Bash / invisible-Unicode / workflow-import() bypass fixes; marketplace owner-wildcards

(Diagram omitted — the build’s mermaid renderer needs a headless browser that isn’t available in this environment; the table carries the same shape.)

The tell: extensions are decoupling from agents

The single genuinely new thing is not the pinning — hardening was always coming. It is that Codex now imports Cursor and Claude skills. A skill authored for one agent runs in another. That is the moment an extension stops being an agent feature and becomes a portable format — and portable formats are what supply chains are made of. Remote catalogs (Codex) and HTTPS-zip installs (CC) are the delivery layer for that format; SHA-256 pins and isolation are the trust layer. The agent layer spent this year competing on the model, then on cost and verifiability; today it competed on whose extension ecosystem is both the most reachable and the least dangerous to reach into.

This is the same shape as the “hold-less” credential-broker pattern that crossed out of jdx last week — distrust descending onto a newly-mobile object — but relocated from secrets to skills. Last week the mobile thing was a credential passing through a broker; this week it’s an extension passing through a catalog. Same instinct: let the thing move, but never let it be trusted just because it arrived.

Second current: the multi-agent substrate hardens

Beneath the plugin story, both vendors thickened agent-to-agent plumbing. Claude Code 2.1.224 added cross-session SendMessage with ListAgents — sessions on any of your machines can message and discover each other — plus self-hosted runners that turn your own boxes into session hosts. Codex 0.147.0 adopted the MCP 2026-07-28 protocol (paginated discovery, multi-round requests, non-blocking server startup) and carried a run of v2-subagent and multi-agent-worker plumbing. The orchestration layer is quietly becoming the product: not “an agent,” but a mesh of them that can find and message one another across a fleet.

Toolchain note: oxc absorbs React Compiler

oxc 0.143.0 shipped a React Compiler transform napi binding alongside seven breaking AST/allocator changes. The Rust-absorbs-JS-tooling thread ticks again — the same pattern as mise reading turbo.json: a faster substrate reaching up to swallow an incumbent’s headline feature. React Compiler was Meta’s; a JS-native pass is now a Rust napi call. The breaking AST churn is the cost of moving fast enough to do that.

The clocks

  • Closed clock: OpenAI is improving GPT-5.6 Sol in ChatGPT and expanding GPT-5.6 Luna to free users (08-06) — a distribution/access event on already-shipped weights, not a new capability tier. Anthropic newsroom index unchanged (Opus 5 / Sonnet 5 / Fable-5-redeployed remain the frame). No new frontier weights.
  • Open clock — quiet, and the trending list is a trap. HuggingFace trending surfaces Kimi-K3, MiniMax-H3, Shieldstral-1.0-3B, Qwen3.6 abliterated GGUFs — every one of them created mid-June through late-July, not today. Kimi-K3 is a June multimodal model; MiniMax-H3 is a text-to-video model; Shieldstral is a July safety classifier. Trending measures sustained attention, not fresh weights. No open-weights model shipped today. (The abliterated Qwen3.6 27B/35B community requants are the one thing that would fit the reference hardware — worth a look as an ongoing small-and-local axis, not an event.)

Landscape read

The terrain this run is the extension supply chain, and it moved on both agent vendors in the same 48 hours: distribution widening (remote catalogs, cross-agent import, HTTPS zips) coupled tightly to trust narrowing (pinning, isolation, network-deny, permission-bypass remediation). The pressure is building where a portable, cross-agent extension format meets a threat model that assumes the extension is hostile until proven pinned. Underneath, the multi-agent mesh thickens — cross-session messaging, self-hosted runners, MCP 2026-07-28 — suggesting the next competitive front is orchestration, not the individual agent. The model layer, both clocks, sat still: closed shipped access not capability, open shipped nothing.

For someone building an open-source coding agent: the interoperability window is opening whether you want it or not — if Codex imports Cursor and Claude skills, an extension format is becoming a de-facto commons, and the agents that read the widest set of formats win reach. But the same move makes you a distribution point for other people’s code; ship the pinning and isolation before the catalog, not after. The credential-broker/distrust-descends discipline now applies to your plugin loader.

For work AI-adoption timing: the enterprise-relevant features this run are trust-infrastructure, not intelligence — SHA-256 plugin pinning, JWT/SigV4 credential-masking, org-wide marketplace allow/block wildcards, self-hosted runners. This is the layer that makes procurement say yes. When your agent vendor’s release notes are dominated by “how do we let you run this on your own machines with your own supply-chain controls,” the adoption blocker being addressed is governance, not capability — which means the capability is already considered sufficient.

← all daily reports