Skip to content

fix(cross-model): accept Codex CLI effort values none and max - #1567

Open
khsaurabh wants to merge 4 commits into
EveryInc:mainfrom
khsaurabh:fix/cross-model-codex-effort-none-max
Open

khsaurabh wants to merge 4 commits into
EveryInc:mainfrom
khsaurabh:fix/cross-model-codex-effort-none-max

Conversation

@khsaurabh

Copy link
Copy Markdown
Contributor

Summary

cross_model_effort rejected Codex CLI values none and max even though those are valid model_reasoning_effort enums (Codex CLI 0.150.1). Fail-closed is still correct for values the route cannot honor; the whitelist was a stale copy of the provider enum.

This PR adds codex:none and codex:max to both review workers (validate_effort_override stays byte-identical), updates the comment/docs/config copies of that list, and pins the seven-value enum in tests so the next CLI addition cannot silently drift.

Editorial default remains xhigh. ce-work / ce-pov hardcoded high is unchanged.

Validation

  • bun test tests/skills/ce-code-review-cross-model-routes.test.ts tests/skills/ce-setup-check-health.test.ts — 161 pass
  • bun run release:validate — in sync
  • Sabotage: restoring the old case arm makes the new accept test fail (exit 2)

Closes #1565

Security Disclosure

No security-relevant changes.

Agent Disclosure

  • Model: Hermes Agent · grok-4.6

The effort whitelist was a stale copy of the Codex enum, so pinning
cross_model_effort to none or max skipped the peer as incompatible.
Keep fail-closed for values the route cannot honor.

Rebased onto current main via Git Data API (OAuth lacks workflow scope
for pushing main CI history).

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 68fbadb210

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment thread docs/guides/configuration.md
Comment thread docs/guides/configuration.md
@khsaurabh
khsaurabh force-pushed the fix/cross-model-codex-effort-none-max branch from 302090f to 4e79025 Compare September 1, 2026 17:23

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 4e790258c9

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment thread skills/ce-code-review/scripts/cross-model-adversarial-review.sh
Keep the Codex none/max effort change from dropping +x on
cross-model-adversarial-review.sh and cross-model-doc-review.sh.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 34d9a3502c

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

expect(readFileSync(path.join(repoRoot, "docs/guides/configuration.md"), "utf8")).toContain(
"codex `none`..`max`",
)
const yamlNeedle = "codex none|minimal|low|\n# medium|high|xhigh|max"

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Match the enum independently of comment wrapping

This assertion includes the literal newline and comment prefix, so a semantically neutral reflow of the YAML comment will fail the full test suite even when the documented enum remains unchanged. Normalize comment whitespace or extract and compare the enum values so the guard pins the protocol rather than incidental formatting.

AGENTS.md reference: AGENTS.md:L216-L220

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed in cebfd4e. The yaml check now strips comment prefixes and whitespace before comparing, so it pins the enum values rather than the comment's line wrapping. Verified both directions locally: a reflowed comment passes, a changed value list still fails.

…t wrapping

Codex review on EveryInc#1567: the yaml needle embedded a literal newline and comment
prefix, so a semantically neutral reflow of the comment would fail the suite.
Strip comment prefixes and whitespace before comparing so the guard pins the
enum itself.
@giuseppebisemi

Copy link
Copy Markdown

Thanks for taking this one. Something landed after you wrote it, and the PR doesn't cover it yet.

#1634 merged on Sep 10 and shipped in 3.25.0. It copied the codex allowlist into skills/ce-work/scripts/cross-model-work.sh, stale list and all, with a comment saying it matches the review peer paths:

codex:minimal|codex:low|codex:medium|codex:high|codex:xhigh) ;;

Its test pins the old belief too, in tests/skills/ce-work-cross-model-routes.test.ts:

rejected("codex", "max") // codex tops out at xhigh
rejected("codex", "none")

The drift guard here reads the two review scripts and nothing else, so CI stays green while the copies disagree. Once this merges, configuration.md will tell users codex takes none..max, and ce-work will reject both with the same "not compatible with route 'codex'" error from #1565, just on a different route.

I re-ran the junk-value probe on codex-cli 0.154.0 today. The API still lists 'none', 'minimal', 'low', 'medium', 'high', 'xhigh', and 'max'.

Could you fold ce-work into this PR? That would mean widening its case arm, swapping those two rejected rows for ultra like you did in the review test, and adding cross-model-work.sh to the guard.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

cross_model_effort rejects codex max and none, which the Codex CLI accepts

3 participants