Compaction has no opt-out in 0.143.0. Here's what to adjust.

Codex 0.143.0-alpha.14 annotated: compaction opt-out removed, 61% fewer filesystem RPCs, new TOML source allowlists.

Compaction has no opt-out in 0.143.0. Here's what to adjust.
Share

What arrived in 0.143.0's pre-release burst?

The 0.143.0 development cycle pushed nine consecutive alpha tags — rust-v0.143.0-alpha.6 through alpha.14 — within a rolling ~16h36m window on 23–24 June 2026, ending with alpha.14 cut by the github-actions[bot] pipeline against commit 34c2459 . Most builds came from the release bot; alpha.8 and alpha.10 were cut manually by maintainer rka-oai .

One caveat governs everything below: every alpha tag ships auto-generated boilerplate notes ("Release 0.143.0-alpha.N"), and OpenAI's curated changelog documents only stable lines — latest entries 0.142.0 (2026-06-22) and 0.141.0 (2026-06-18) . So per-build substance is inferred from merged PRs and commit/compare diffs, not a formal log.

Five cross-cutting themes run through the cycle:

  • Filesystem efficiency — a bounded fs/walk RPC and plugin-namespace caching for skill discovery.
  • Context-window consistency — including removal of the auto_compaction opt-out.
  • Marketplace governance — source-admission allowlists for plugin packages.
  • Protocol teardown — shutting down superseded MCP managers so stdio processes don't leak.
  • Dependency hygiene — pinned hono 4.12.25 and fast-uri 3.1.1, and an rmcp 1.7.0→1.8.0 bump.
TagCommitsFilesPrimary themeCut by
alpha.6618MCP / Codex Apps plumbingbot
alpha.7525Resume latency + securitybot
alpha.8317Rollout metrics, remindersmanual
alpha.9522MCP manager teardownbot
alpha.1032331Undocumented (no diff rendered)manual
alpha.1111Version bumpbot
alpha.12865Compaction + toolingbot
alpha.13415Context-window reusebot
alpha.14799Marketplace governancebot

The magnitudes come from per-tag compare pages . alpha.10 is the least transparent: GitHub reports 32 commits and 331 files changed since alpha.9, but the compare page never rendered the commit list, so no reliable public summary exists .

How a bounded walk cut filesystem round-trips to a fraction

Compaction has no opt-out in 0.143.0. Here's what to adjust.

The single most practical change in the cycle is a bounded filesystem walk that replaces per-file metadata polling during skill discovery. Codex used to enumerate skills with repeated readDirectory plus getMetadata calls — one round-trip per file — so cost scaled with the total skill count. The new path scales with the number of plugin roots instead, which is what delivers the speedup on plugin-heavy workspaces.

Three PRs land the change. PR #29841 introduces an fs/walk RPC for the exec server with explicit depth, entry-count, and response-size limits — a single bounded request rather than an open-ended directory crawl. PR #29842 switches environment skill discovery over to that walk. PR #29831 caches plugin namespaces during executor skill discovery so the same namespace is not resolved twice.

The reported result, drawn from the merged PRs in the 0.143.0 cycle, is roughly 61% fewer filesystem RPCs and about 2.9× faster load time . Both figures come from the per-PR descriptions, not a curated changelog — OpenAI's public changelog documents only stable lines, with the latest entries at 0.142.0 and 0.141.0 — so treat them as developer-reported benchmarks rather than independently audited numbers.

Why the old approach degraded is the useful part. As the PR discussion frames it:

"Issuing a getMetadata call for every file means latency grows linearly with the number of skills, not the number of plugins — a workspace with hundreds of skills pays hundreds of round-trips before the agent does any work," per the PR #29841 discussion.

The fix changes the scaling factor, which is why the benefit is uneven: a workspace with a few skills sees little, while one with many plugin roots and large skill trees sees most of the gain. The work is staged across the alpha builds — bounded walk and discovery switch early, namespace caching alongside — so it should land together once 0.143.0 stabilizes .

Compaction made unconditional: why the opt-out is gone

Automatic history compaction is no longer something you can switch off. PR #29815 removed the auto_compaction opt-out flag, so compaction now runs unconditionally at three points: pre-turn, on model-switch, and mid-turn . If your config or wrapper tooling ever passed auto_compaction=false, that setting becomes a no-op — the behavior silently flips to always-on once 0.143.0 reaches stable .

Two adjacent changes make the always-on path safer to rely on. PR #29762, surfaced in alpha.13, reuses the compacted-history replacement path when installing new context windows, so item IDs and checkpoints stay consistent instead of drifting between a fresh window and the prior one . That matters because compaction rewrites the conversation; if IDs were regenerated, anything keyed to them — checkpoints, resumes, references — would break.

Alpha.12 tightened the resume story further. PR #29829 persists inter-agent messages directly as ResponseItem::AgentMessage with amsg_ IDs rather than rebuilding them on resume . The same build also changed token-budget compaction to reset into a fresh local context window instead of requesting server or local summarization — a different mechanism, but part of the same push toward deterministic, locally-owned history state.

The practical exposure is narrow but real. These are pre-release alpha builds, not the default stable install, so nothing changes for you today unless you track the @alpha channel or build from source. But the migration cost is front-loaded:

  • Grep your Codex config and any orchestration scripts for auto_compaction — that key is going away.
  • Expect compaction to fire mid-turn on long sessions; budget for it rather than assuming a fixed window.
  • If you parse or store response-item IDs, confirm you handle amsg_-prefixed agent messages.

Audit now, while 0.143.0 is still in alpha, rather than discovering the unconditional behavior after the stable cut .

Admission gating for skill packages: the allowlist mechanism

Compaction has no opt-out in 0.143.0. Here's what to adjust.

The 0.143.0 cycle adds a source-admission layer that lets organizations restrict where skill packages and plugins can come from. The change is concentrated in alpha.14, cut 24 June 2026 . At its center, PR #29690 introduces a TOML marketplaces requirements shape carrying restrict_to_allowed_sources plus an allowed_sources list, with entries typed as git, host_pattern, or local . That gives admins a declarative allowlist instead of trusting whatever registry a developer points at.

Two companion changes make the allowlist enforceable rather than advisory:

  • Centralized validation (PR #29753): source-admission checks run at three choke points — adding a marketplace, installing a plugin, and upgrading a configured Git marketplace — so a disallowed source is rejected at every entry path, not just on first add .
  • Legacy suppression (PR #29765): when the remote catalog is active under Codex-backend auth, local openai-curated plugin entries are suppressed, so stale local copies don't shadow or compete with the governed remote source .

Read together, these turn skill installation into a policy decision an org admin owns. You can pin installs to an internal Git host via host_pattern, allow a vetted local path for offline work, and refuse everything else. For shared CI runners or multi-developer workspaces, that closes a gap where any contributor could install an arbitrary marketplace package.

The practical sequence matters: configure restrict_to_allowed_sources and your allowed_sources entries before rolling 0.143.0 into shared environments. If you deploy first and gate later, developers may already have installed plugins from sources you intend to disallow, and you'll be reconciling state instead of preventing it. Because none of this is in the curated public changelog yet — only the stable 0.142.0 and 0.141.0 lines are documented — treat the PR diffs on main as the authoritative reference while 0.143.0 remains in alpha .

Stdio process leaks closed: what manager teardown gives you

Compaction has no opt-out in 0.143.0. Here's what to adjust.

Alpha.9 closes a resource leak in how Codex manages MCP servers: superseded connection managers are now explicitly shut down instead of being dropped silently. Previously, an old manager could leave its stdio child process alive, so swapping or reconfiguring an MCP server orphaned a running subprocess. After the fix, teardown reaps those processes, which matters for long-lived sessions that cycle MCP servers .

The same build also fixed inline compaction to operate on the turn-owned WorldState the model actually saw, rather than a stale snapshot. If you run automatic compaction (now unconditional in 0.143.0), this prevents the summarizer from compressing context that no longer matches the live turn — a correctness fix, not just cleanup .

Two earlier security items in alpha.7 round out the hardening:

  • Path-traversal closed: PathUri gained URI-native lexical containment that fails closed on percent-encoded directory separators, removing an encoded-path bypass vector .
  • Dependency hygiene: rmcp and rmcp-macros moved from 1.7.0 to 1.8.0, and vulnerable JavaScript dependencies were pinned — hono to 4.12.25 and fast-uri to 3.1.1 — against recent Hono advisories and a percent-encoded path-traversal issue .

None of this changes your config surface, which is the point: these are silent reliability and security fixes you inherit by upgrading. The practical upside is for anyone scripting Codex around custom MCP servers — the orphaned-stdio bug is the kind that shows up as climbing process counts on a CI runner or a developer laptop, not as an error message. If you have been working around it by manually killing stale subprocesses, alpha.9 removes the need.

As with the rest of this cycle, these fixes appear only in commit history, not the curated changelog, so verify behavior against the merged PRs on main before relying on them .

Before 0.143.0 stabilizes: what to act on now

The right move today is to track 0.143.0 as a moving target, not adopt it. The stable channel remains 0.142.0, which landed 2026-06-22, and no stable 0.143.0 date has been announced. The whole burst is pre-release: nine alpha tags from alpha.6 through alpha.14 cut across 23–24 June 2026, with auto-generated boilerplate notes rather than a human changelog .

One build resists inspection. The compare page for alpha.10 reports 32 commits, 331 files changed, and 16 contributors against alpha.9, but it never rendered the commit list — so there is no reliable public summary of what changed. If you need to know, clone the repo and diff the two tags locally rather than trusting the GitHub UI.

Two changes break existing setups; two are clear wins. Weigh them before you migrate:

TypeChangeAction before stabilizing
Breakingauto_compaction opt-out flag removed (#29815)Drop the flag from config; expect unconditional compaction at pre-turn, model-switch, and mid-turn stages
BreakingToken-budget compaction resets into a fresh local context window (alpha.12)Re-test long-running agents that assumed server/local summarization
Win~61% fewer filesystem RPCs, ~2.9× faster skill/plugin discoveryPlan to upgrade plugin-heavy workspaces once stable
WinMarketplace source allowlists: restrict_to_allowed_sources, allowed_sources (#29690)Draft your marketplaces TOML now for a clean cutover

The 61% RPC reduction and 2.9× load-time figures come from PR-level reports, not formal benchmarks . Verify them against your own plugin roots before counting on the speedup.

Concrete takeaway: keep production on 0.142.0, read the changes you care about from merged PRs on main rather than the boilerplate release notes , and watch the releases page for a stable 0.143.0 tag as the alpha cadence settles. When it appears, your migration is two config edits and a regression pass — not a surprise.

Last updated: 2026-06-25. Reviewed against the openai/codex releases, tags, and main commit history captured 23–25 June 2026.

Frequently asked questions

Is 0.143.0-alpha.14 safe to install today?

Not for production. rust-v0.143.0-alpha.14 is a pre-release cut by the release bot on 24 June 2026, carrying only auto-generated boilerplate notes. The stable channel remains 0.142.0, released 2026-06-22. Install via the @alpha npm tag or build from source only if you need bleeding-edge features and can tolerate breakage and undocumented regressions.

What do I need to change if I had auto_compaction disabled?

Remove it. The auto_compaction opt-out flag no longer exists in 0.143.0 after PR #29815 restored unconditional automatic compaction at the pre-turn, model-switch, and mid-turn stages. Audit any config file or wrapper tooling that passes auto_compaction=false — in the new build it is silently ignored or rejected, so a setting you relied on to preserve full context will no longer apply.

Why does alpha.10 show 331 changed files but no commit list?

GitHub reports 32 commits, 331 files changed and 16 contributors between alpha.9 and alpha.10, but the compare page did not render the commit list at the time of research. No reliable public per-commit breakdown exists for that span. To read what actually changed, clone openai/codex locally and diff the two tags directly with git log rust-v0.143.0-alpha.9..rust-v0.143.0-alpha.10.

When will 0.143.0 reach stable?

No date has been announced. The alpha burst settled at alpha.14 on 2026-06-24, and OpenAI's curated changelog still documents only stable lines. For reference, the prior cycle from 0.141.0 (2026-06-18) to 0.142.0 (2026-06-22) took about four days. Watch the GitHub releases page for the stable 0.143.0 tag.

How much does the bounded-walk change help on a workspace with many skill packages?

The gain scales with the number of plugin roots, not your total skill count. The bounded fs/walk work, reported in PR #29841, cut filesystem RPCs by roughly 61% and load time by about 2.9×. Plugin- and skill-heavy workspaces should see the largest startup improvement once 0.143.0 stabilizes; lightweight setups with few plugin roots will notice little difference.