Repository navigation
Conversation
The carried codex-acp snapshot depended on @openai/codex 0.148.0 and launched that bundled CLI unless CODEX_PATH was set, so a session could only offer the models and efforts that old catalog knew (#1202). The runtime host boundary now selects Codex the way it selects Claude: nonempty CODEX_PATH, otherwise codex on the host PATH, canonical and checked for launchability, refusing before inference with recovery guidance and never retrying the default after a bad explicit choice. The embedded dependencies apply it only to the retained Codex command; custom commands, other providers and native-bound builds keep theirs. The adapter is rebuilt from its pinned producer commit with a readable patch that drops the bundled CLI dependency and fallback. The manifest records the patch, lock and executable hashes, and a fresh private clone reproduces the shipped archive byte for byte. DEC-018 records the user-directed decision; the ACP and release specifications describe the resulting behavior. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
PR #1204: Use the host-installed Codex CLI for agent sessions24 files, +3945 / -3010 Scope🔴 PR has 6955 lines changed. Split into focused PRs. 🟡 6955 lines changed. PRs under 400 receive more thorough review. 🟡 24 files changed. Are all changes related? 🟡 Changes span 9 directories. Structural🟡 2 console statements. Oxlint structural signals:
Slop✅ Slop indicators look low. Static AnalysisOxlint: 11 diagnostics across 4 files (6 rules) no-empty-function (4): packages/runtime/node-host-agent-executable.ts, packages/acp/src/adapter-snapshots.ts CorrectnessNo extraneous code patterns detected. |
|
Reviewed the specification and decision-document changes at
Scope: documentation review only. I inspected the relevant executable-selection code and protocol assertions for context; I did not run tests, inspect CI, or issue an implementation/merge approval. |
Qualify SessionStart as Claude's identity confirmation and keep the shared no-mapping-before-save rule separate from Codex's App Server thread report. State that a transient CODEX_PATH or CLAUDE_CODE_EXECUTABLE outranks a session value, and that a native-bound runtime receives its observed build in place of the ordinary host selection. Move the host-installed Codex decision into a dated record, specs/decisions/004, indexed and linked from the ACP and release owners, with a pointer row in the legacy log. Record that adapter reproducibility does not cover the host CLI, whose updates can change availability and catalogs under the same digest, and give the release specification a Maintained Codex adapter subsection. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Why
The carried Codex adapter launched bundled Codex 0.148.0. Its catalog omitted GPT-6.1-Sol, so explicit effort selection failed even when the host had a working CLI that supported it. Fixes #1202.
What changes
Before: ordinary Codex sessions used the bundled agent unless CODEX_PATH was set.
After: they use nonempty CODEX_PATH or codex on the host PATH. A missing or unlaunchable selection refuses before inference with recovery guidance. The adapter contains no Codex CLI dependency or bundled fallback.
How it works
Reuse the existing host executable and transient child-environment boundaries for Claude and Codex. Each overlay applies only to its matching carried adapter command. Custom commands and native-bound observed executable selection retain their behavior.
The Codex adapter is rebuilt from its pinned producer plus a readable patch. Recorded lock, executable and archive hashes match a fresh private reproduction.
Review guide
Start with the readable Codex producer patch, runtime host executable helper and command-qualified overlay. Review the manifest and provenance alongside the generated snapshot.
The documentation correction at 3ff8dea addresses the four human review items: provider-specific session confirmation, transient CODEX_PATH precedence, the indexed dated decision record with owner backlinks, and the distinction between adapter reproducibility and host CLI/catalog variability.
What must stay true
How to verify it
The implementation is fa34905; the current head 3ff8dea adds documentation only.
deno task verify:cleanpassed at fa34905, including fresh preparation, offline source/release builds, unchanged dependency/cache content and runtime interference checks.Scope
Host Codex execution only. #1177's Claude reconnect repair is separate.
Generated or mechanical changes
The maintained archive and generated snapshot encode the rebuilt adapter. Their 5,801 changed generated lines account for most of the diff. Readable source, hash, protocol and distribution evidence cover the payload.
Risks and limitations
The host must provide the CLI. Updating it can change ordinary availability and catalogs independently of the adapter digest; native build binding remains strict.
Architecture, acceptance and independent Fable review passed at the current head. This remains a draft: current-head CI failed the DR6 contender assertion already tracked by #1200, and focused diagnosis is underway. Its complete first output is preserved. Prior-head CI twice reached the Implementation fixture deadline tracked by #1143; that shard passes on this documentation-only head. No deadline or assertion was weakened.
Scope confirmation