Repository navigation
Install Codex's code-mode host beside the pinned binary - #473
Conversation
There was a problem hiding this comment.
Round 1 — reviewed head fd6d353a — reviewer summarizer:hermes/gpt-5.6-terra over coverage+credentials+deployment+general+lifecycle+prose.
terra
Advisory findings from outerloop — the code owner decides. Reply to disagree; the outerloop:no-review label opts this PR out.
Verdict: nothing blocking — 2 advisory notes.
2 findings attached to the lines below.
Merged verdict: two non-blocking change findings. Rejected: none.
# Conflicts: # CHANGELOG.md
|
Correction to the description: |
Urgent fix. Native Codex sessions on the pinned Codex 0.160.0 fail on their first turn:
The agent cannot run any command, so every run ends "without a submit" and the fleet starts another one each cadence. On one fleet this produced 18 empty runs and research-log comments in one evening before its launches were held.
Cause. With a native OpenAI model, Codex 0.160 runs tools through code mode, which needs a companion binary
codex-code-mode-hostbesidecodex. We installed onlycodex. Endpoint (chat-bridge) sessions don't use code mode, which is why fleets running endpoint authors were unaffected. Checked with the 0.160 binary: settingfeatures.code_mode,code_mode_onlyandcode_mode_hostto false does not help (the model requires code mode, which then fails closed). With the host besidecodex, a realcommand_executionruns.Fix.
harnesses.toml[codex]:code_mode_host_sha256forcodex-code-mode-host-x86_64-unknown-linux-musl.tar.gz, matching GitHub's published digest. A codex version override must also supplyOUTERLOOP_CODEX_CODE_MODE_HOST_SHA256; it is added to the tick and deploy allowlists.install_codex.sh: fetches the host and verifies its sha256 before extracting, then installs it ascodex-code-mode-hostbesidecodex, both atomically with their own verified markers. A host fetch or verify failure fails the whole install.harness_cli.verified: a codex without a matching host counts as drift, soharness upgrade(run by every deploy as--used) repairs existing installs with no manual step.CodexHarness: binds the host read-only at/opt/agent/codex-code-mode-hostbeside/opt/agent/codex. The session refuses to start (codex-code-mode-host-missing) when the host is absent, so no session runs without tools.Tests. Installer pair install, plus failure cases (bad host sha, failed host fetch, bad codex sha) on fresh and legacy installs. Pins and override rule, container bind, launch refusal, and drift detection. Mutation checks: removing the host sha check or the launch refusal each fails a test. Full gate: ruff, format, mypy,
3154 passed, 12 skipped.Compatibility. No persisted kernel state changes. An existing single-binary 0.160 install is repaired on the next harness upgrade. Rolling back to a kernel without this change leaves an unused extra file beside codex.
release/0.3also pins Codex 0.160, so this needs a cherry-pick there (rc2).Built by Codex (gpt-5.6-terra); diagnosed, verified against the 0.160 binary and cross-reviewed by Claude Opus 5.5; advisory review panel to follow.