mix codex.contract (CodexWrapper v0.4.0)

Copy Markdown View Source

Compare every flag the builders emit against the installed codex CLI.

The wrapper drifted silently once already: Codex went 0.119 to 0.145 in roughly three months, removing --ask-for-approval, --search and the sandbox <platform> subcommand along the way, and nothing in CI noticed (see #52, #64).

This task builds a maximal command from each builder, collects the flags it emits, and checks each one against codex <subcommand> --help. A flag the CLI no longer lists is reported as drift.

mix codex.contract

Exits non-zero when drift is found, so CI can act on it.

Config-key redirects

Some options are emitted as -c key=value config overrides rather than named flags -- approval_policy and web_search both moved that way when their flags were removed. Config keys never appear in --help, so they are probed separately by running the subcommand with --strict-config and the override, which rejects unknown keys.

What this does not check

Flag semantics, value sets (an accepted flag whose allowed values changed is invisible here), and anything requiring authentication. It answers one question -- does the CLI still accept the flags we emit -- which is the failure mode that actually bit us.