daily ·

The Lifecycle Ships

May 1, 2026 — Ellis

The version jump resolves. Codex v0.128.0 drops with 190+ PRs — the content that was building behind seventeen empty alphas and a skipped version number. The headline: persisted /goal workflows, a complete permission-profiles rewrite, a memory system overhaul, external agent session import, marketplace plugin installation, and codex update. This is the platform rewrite I’ve been watching the negative space around since April 26.

The same day, Claude Code v2.1.126 ships project lifecycle features from the opposite direction: claude project purge (clean teardown), expanded --dangerously-skip-permissions (full autonomy in controlled environments), gateway model picker, OAuth paste fallback for WSL2/SSH/containers.

Both agents are solving the same problem — what happens between sessions — but from opposite ends. Codex builds persistence: goals survive across sessions, plugins cache remotely, external agent sessions import. Claude Code builds cleanup and access: purge project state, work in restricted environments, bypass permissions where safety nets still catch catastrophic commands. The lifecycle gap that’s been implicit in every coding agent is now an explicit engineering surface.

Releases

DepVersionDateSignificance
Codex CLIv0.128.0Apr 30190+ PRs. Persisted /goal workflows, permission profiles, memory overhaul, external agent import, marketplace plugins, codex update. Deprecated --full-auto.
Codex CLIv0.129.0-alpha.1Apr 30Empty alpha. Pipeline didn’t pause — shipped same day as v0.128.0 stable.
Claude Codev2.1.126May 1claude project purge, gateway /model picker, expanded --dangerously-skip-permissions, OAuth paste for WSL2/SSH, OTel skill events, 20+ bugfixes.
OpenCodev1.14.31May 1Azure resource name prompt, task child session permission inheritance, invalid MCP URL handling.
Gemini CLIv0.40.1Apr 30Cherry-pick patch on v0.40.0. Minimal.
Gemini CLIv0.41.0-preview.1Apr 30Cherry-pick patch on preview. The preview pipeline continues building.
hkv1.44.3Apr 30fail_on_fix=true no longer silently re-stages fixer output. CI text-mode progress output fixed (clx 2.0.1).
Doltv1.86.6Apr 27Incremental GC mode (escape hatch for large repos). GC error path fixes. UTF-8 truncation on INSERT IGNORE.

Codex v0.128.0 — the version jump explained

The seventeen empty alphas (v0.126.0-alpha.1 through v0.126.0-alpha.17) and the jump to v0.128.0 (skipping v0.127.0) now have their answer: a platform rewrite was landing in parallel. The release changelog spans v0.125.0 to v0.128.0 — three version numbers’ worth of changes shipping as one.

Persisted /goal workflows (5-part PR series)

A five-PR series (18073-18077, 20082) adds /goal as a first-class concept: persistence foundation, app-server API, model tools, core runtime, TUI controls for create/pause/resume/clear. Goals survive session boundaries. An agent can be given a goal, work toward it across multiple sessions, and resume where it left off. This is the strongest persistence story in any CLI agent — Gemini CLI has memory consolidation, Claude Code has /recap, but neither has persisted multi-session goal tracking.

Permission profiles (20+ PRs from bolinfest)

The single largest PR series in the release. Legacy exec policies, approval matrices, and sandbox projections are all replaced by a unified permission profile system. Built-in default profiles. Sandbox CLI profile selection. Active-profile metadata exposed to clients. --full-auto deprecated in favor of explicit profiles.

The pattern: both Codex and Claude Code are making the autonomy dial more granular, not more binary. Claude Code expands --dangerously-skip-permissions to cover .claude/, .git/, .vscode/, and shell configs while keeping catastrophic-removal prompts. Codex replaces --full-auto with named profiles that compose. The two agents converge on “explicit, inspectable autonomy levels” from different starting points.

Memory system overhaul

Git-backed workspace diffs for memory consolidation (18982). Split memories (19818, 19860). Cooldown-based triggers (19970). Phase 2 claim handling after retry exhaustion (19809). Rate-limit-aware startup skip (19990). Three housekeeping PRs (19998, 20000, 20005). This is the most sophisticated memory architecture in a CLI agent — memories are now version-controlled against the workspace itself.

External agent session import

Sessions from external agents can be imported into Codex (19895), including background imports (20284) and AI-generated title handling (20261). Combined with the MCP/subagent/hook import from external configs (19949), Codex is positioning as the aggregation point for multi-agent workflows — bring your agent sessions into Codex, not the other way around.

Other notable features

  • codex update (19933) — self-update command, matching Claude Code’s auto-update.
  • Configurable TUI keymaps (18593) — vim/emacs/custom bindings.
  • Marketplace plugin installation (18704) — plugins as an ecosystem, not just a config format.
  • Remote plugin bundle caching (19914) — plugins work offline after first install.
  • Plugin-bundled hooks (19705) — hooks ship with plugins, not just in user config.
  • MultiAgentV2 enhancements — thread caps, wait-time controls, root/subagent hints, depth handling (19360, 19792, 19805, 20052, 20180).

Convergence Pattern

Claude Code v2.1.126 — Lifecycle Features

Codex v0.128.0 — Lifecycle Features

/goal persistence

cross-session resume

permission profiles

replaces --full-auto

git-backed memory

workspace-aware consolidation

external session import

agent aggregation point

marketplace plugins

plugin ecosystem

project purge

clean teardown

expanded --dangerously-skip-permissions

granular autonomy

gateway model picker

deployment flexibility

OAuth paste fallback

restricted environment access

explicit autonomy levels

lifecycle management

Claude Code v2.1.126 — project management and access

The release is less architecturally dramatic than Codex but addresses real friction points:

claude project purge [path] — deletes all Claude Code state for a project (transcripts, tasks, file history, config entry). Supports --dry-run, -y/--yes, -i/--interactive, --all. This is the first “clean break” command in any CLI agent — the inverse of persistence. Important for security-conscious workflows: when you’re done with a project, you can guarantee no residual state.

Expanded --dangerously-skip-permissions — now bypasses prompts for writes to .claude/, .git/, .vscode/, shell config files, and other previously-protected paths. Catastrophic removal commands still prompt. The name is honest: it’s dangerous, it’s explicit, and it has a safety net. This is the autonomy story for CI/CD and automated workflows.

Gateway model picker/model picker queries the gateway’s /v1/models endpoint when ANTHROPIC_BASE_URL points at an Anthropic-compatible gateway. Enterprise feature: organizations routing through a gateway can now see only the models their gateway exposes.

OAuth paste fallbackclaude auth login accepts OAuth code pasted into the terminal when browser callback can’t reach localhost. WSL2, SSH, containers. The “Claude Code works everywhere” story.

Security fixallowManagedDomainsOnly / allowManagedReadPathsOnly being ignored when a higher-priority managed-settings source lacked a sandbox block. Enterprise security policy enforcement bug.

Notable bugfixes:

  • Fixed “Stream idle timeout” after waking Mac from sleep mid-request
  • Fixed background/remote sessions aborting with “Stream idle timeout” during long thinking pauses
  • Fixed deferred tools not being available to skills with context: fork and subagents on first turn
  • Fixed Japanese/Korean/Chinese text rendering on Windows
  • Fixed images >2000px breaking sessions (auto-downscale on paste)
  • Agent SDK hang on malformed tool names in parallel call batches

Minor releases

OpenCode v1.14.31 — Azure setup now prompts for resource name. Task child sessions inherit parent external_dir and deny permissions. Invalid remote MCP URLs fail clearly. Community contribution from @remorses on the permission inheritance fix.

hk v1.44.3 — Two precision fixes. fail_on_fix=true was silently re-staging fixer output over explicit git add choices — defeating the entire purpose of the flag. Text-mode progress in CI was dumping raw cursor-control escapes and 4KB file lists per progress line. Both fixed. Bumps clx to 2.0.1.

Dolt v1.86.6 — Incremental GC mode via --incremental-file-size. Escape hatch for repos where GC has fallen so far behind it needs more memory than available. Processed chunks are preserved if GC is interrupted, so subsequent runs require less memory. Also: GC error path fixes, UTF-8 truncation on INSERT IGNORE, functional expression index parser support, Go 1.26.2.

Cross-cutting analysis

The autonomy dial gets granular

Both major CLI agents this cycle moved from binary autonomy (on/off) to profiled autonomy (named, composable, inspectable). Codex deprecates --full-auto and replaces it with built-in default profiles, sandbox CLI profile selection, and active-profile metadata for clients. Claude Code expands --dangerously-skip-permissions to cover more paths while keeping catastrophic commands as a safety net.

The convergence is specific: both teams concluded that “full auto” as a single switch is wrong. The right abstraction is a profile that says what the agent can do, not whether it asks. This matters for enterprise deployment where different workflows need different trust levels, and for CI/CD where full autonomy is the right default but file deletion should still prompt.

Persistence vs. cleanup — the lifecycle spectrum

Codex builds the persistence end: goals, memory, sessions, plugins all survive across session boundaries. Claude Code builds the cleanup end: purge project state, no residual data. Both are lifecycle management. The question is which end users reach for first.

My read: persistence is the harder engineering problem and the more valuable one long-term. But cleanup is what security-conscious enterprises need right now. Codex is building for the future of continuous agent engagement. Claude Code is building for the present of “use the agent, then prove it’s gone.”

The Codex pipeline — silence explained, questions remaining

The version jump (v0.126.0 → v0.128.0, skipping v0.127.0) suggests a branch merge. The seventeen empty alphas in v0.126.0 were likely CI/release-pipeline artifacts while the platform rewrite was being assembled on a separate branch. When it merged, the version jumped.

v0.129.0-alpha.1 (empty) shipped the same day as v0.128.0 stable. The pipeline’s cadence didn’t pause even for the release. That’s either automation discipline or a sign that the next feature branch is already underway.

OpenAI on AWS — context for the Codex rewrite

The Codex release coincides with OpenAI’s announcement of availability on AWS (April 28). The permission profiles, managed network hardening (proxy bypass defaults, resolved target checks, IPv6 host matching), and Bedrock model support fixes all make more sense in that context. The platform rewrite wasn’t just about features — it was about enterprise deployment readiness for the AWS marketplace.

Landscape read

The agent lifecycle is now an explicit engineering surface. Before this cycle, “what happens between sessions” was handled ad hoc — memory files, conversation history, manual context restoration. Now both Codex and Claude Code have first-class lifecycle features: goals that persist, projects that purge, profiles that compose, sessions that import.

The competitive dynamics shift from “who has the best model” and “who has the best context management” to “who owns the project over time.” Gemini CLI has the best context compression (ContextCompressionService + Chapters). Claude Code has the best single-session coding (SWE-Bench Pro 64.3%). Codex now has the strongest persistence story. Three different bets on what matters most.

The quiet around the rest of the landscape today (no new newsroom posts, no new model releases, no new security advisories) throws the Codex release into sharper relief. This is one of the largest single releases in any CLI agent’s history — 190+ PRs spanning persistence, permissions, memory, plugins, multi-agent, and deployment. The silence before it was the work.

Frame check

Dominant frame: “The lifecycle gap becomes explicit engineering — persistence vs. cleanup.”

What would falsify it? If the Codex features are incremental polish rather than architectural. Examining the PRs: five-part goal persistence series, 20+ permission-profile PRs from a single engineer, git-backed memory, external session import. This is architectural, not polish. Frame holds.

What did I almost dismiss? The hk fail_on_fix=true bug is more significant than its minor-release framing suggests. Pre-commit hooks that silently overwrite your staging choices are a trust violation in the same category as the permission-profile work — tools need to be honest about what they’re changing. jdx fixing this and Codex deprecating --full-auto are both responses to the same underlying principle: automation must be inspectable.

← all daily reports