codex/action.yaml pins codex_version: 0.131.0-alpha.22. The alpha line is now 0.148.0-alpha.5 and the stable line is 0.147.0 — seventeen minors of drift, and it has not moved since the pin was introduced.
The running-tend weekly rule is deliberately conservative here: "keep it on its prerelease line; bump only to a release confirmed to run under codex exec." The problem is that nothing in this repo can produce that confirmation. There is no harness: codex override in .config/tend.yaml, no codex step in ci.yaml, and no OpenAI credential reachable from a weekly run — so a live codex exec session is not something the weekly job can perform, and the bump condition can never be satisfied by the bot. The pin drifts by default rather than by decision.
What I can verify from CI, and did this week against 0.148.0-alpha.5, is that the CLI surface the action depends on is intact:
Surface probe against 0.148.0-alpha.5
$ npm install @openai/codex@0.148.0-alpha.5
$ codex --version
codex-cli 0.148.0-alpha.5
$ codex exec --help # every flag the action passes is still accepted
-m, --model <MODEL>
-s, --sandbox <SANDBOX_MODE>
-o, --output-last-message <FILE>
-c, --config <key=value>
$ codex plugin marketplace add <repo root>
Added marketplace `tend` from /home/runner/work/tend/tend.
$ codex plugin add tend-ci-runner@tend
Added plugin `tend-ci-runner` from marketplace `tend`.
Installed plugin root: <path>
The Installed plugin root: line is the one the action parses with awk to set CLAUDE_PLUGIN_ROOT; it still has that exact prefix.
That covers the flags and the plugin-install parse, which is where a silent break would most likely land. It does not cover an actual agent session — model selection, model_reasoning_effort, sandbox behavior, or whether the final message reaches --output-last-message.
Two ways to close the gap, both cheap relative to letting the pin rot:
- A codex smoke in
ci.yaml, gated on an OPENAI_API_KEY secret in the tend environment, running one trivial codex exec against the pinned version. That makes the weekly bump self-verifying and is the version of this that doesn't need a person each time.
- A
harness: codex override on one low-stakes workflow (the pattern .config/tend.yaml already supports for trialling a harness per workflow), so the pin gets exercised by real runs and a bad bump surfaces on a workflow whose failure costs little.
Until one of those exists, the weekly run will keep reporting this drift and declining to act on it, which is the correct behavior under the current rule but not a good steady state.
codex/action.yamlpinscodex_version: 0.131.0-alpha.22. The alpha line is now0.148.0-alpha.5and the stable line is0.147.0— seventeen minors of drift, and it has not moved since the pin was introduced.The
running-tendweekly rule is deliberately conservative here: "keep it on its prerelease line; bump only to a release confirmed to run undercodex exec." The problem is that nothing in this repo can produce that confirmation. There is noharness: codexoverride in.config/tend.yaml, no codex step inci.yaml, and no OpenAI credential reachable from a weekly run — so a livecodex execsession is not something the weekly job can perform, and the bump condition can never be satisfied by the bot. The pin drifts by default rather than by decision.What I can verify from CI, and did this week against
0.148.0-alpha.5, is that the CLI surface the action depends on is intact:Surface probe against 0.148.0-alpha.5
The
Installed plugin root:line is the one the action parses withawkto setCLAUDE_PLUGIN_ROOT; it still has that exact prefix.That covers the flags and the plugin-install parse, which is where a silent break would most likely land. It does not cover an actual agent session — model selection,
model_reasoning_effort, sandbox behavior, or whether the final message reaches--output-last-message.Two ways to close the gap, both cheap relative to letting the pin rot:
ci.yaml, gated on anOPENAI_API_KEYsecret in thetendenvironment, running one trivialcodex execagainst the pinned version. That makes the weekly bump self-verifying and is the version of this that doesn't need a person each time.harness: codexoverride on one low-stakes workflow (the pattern.config/tend.yamlalready supports for trialling a harness per workflow), so the pin gets exercised by real runs and a bad bump surfaces on a workflow whose failure costs little.Until one of those exists, the weekly run will keep reporting this drift and declining to act on it, which is the correct behavior under the current rule but not a good steady state.