Skip to content

codex_version can't be bumped: the weekly rule's confirmation isn't reachable from CI #922

Description

@tend-agent

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:

  1. 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.
  2. 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions