fix(catalog): refresh Codex 0.151 shell contract - #2907
Conversation
|
✅ Deterministic PR hygiene checks passed. |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro Plus Run ID: 📒 Files selected for processing (7)
Included review availability: Your plan provides up to 10 included reviews per hour; 3 remain after this review. 📝 WalkthroughWalkthroughThe catalog now canonicalizes shell entries to ChangesCatalog contract and model configuration
Estimated code review effort: 2 (Simple) | ~15 minutes Merge Risk: ⚪ Minimal · up to This localized catalog compatibility update normalizes recognized shell types and preserves explicit model settings without introducing a concrete correctness, security, or availability risk. No actionable merge-blocking risk remains after normal checks and review. Suggested reviewers: 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
Full details: Docstring CoverageExplanation Docstring coverage is 33.33% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 3 functions across 6 files. (1 skipped: 1 unsupported.)
✨ Finishing Touches 💡 1📝 Generate docstrings 💡
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 97addf3203
ℹ️ About Codex in GitHub
Your team has set up Codex to 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 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| if (entry.shell_type === "default" || entry.shell_type === "local" || entry.shell_type === "shell_command") { | ||
| entry.shell_type = "unified_exec"; |
There was a problem hiding this comment.
Keep the emitted shell type compatible with older Codex clients
When a user runs Codex 0.150 or earlier, rewriting every legacy shell_type to the newly introduced unified_exec value makes the generated catalog incompatible with that client's closed enum, so a subsequent ocx sync can cause Codex to reject the catalog rather than merely disable the affected model. Since Codex 0.151 still accepts shell_command as an alias, preserve that wire value or select the spelling based on the detected client version instead of unconditionally canonicalizing all rows.
AGENTS.md reference: src/AGENTS.md:L10-L10
Useful? React with 👍 / 👎.
리뷰 · 우선순위 70 / 80이 PR은 지금 지금 HEAD의 네이티브 스냅샷과 생성기는 아직 Codex 0.151 이전 모양이다. #2896 이 그 불일치를 처음 적었다. 작성자는 나중에 크래시 인과를 철회했다. 프록시를 끈 뒤에도 app-server가 죽었고, 원인은 openai/codex#21761 쪽에 가깝다고 했다. 고치는 곳은 세 층이다. 테스트는 말한 돌연변이를 실제로 잡는다. 별칭 정규화, disabled 보존, 불리언 기본값, 명시 false 보존, 관측 철자 둘, 핀된 5.6 계약. 라인 434 - default/local/shell_command 만 unified_exec 로 바꾼다. 빈 문자열이나 오타 같은 다른 값은 그대로 나간다. 같은 파일의 input_modalities 주석이 이미 말한다. 닫힌 enum 값 하나가 틀리면 Codex가 카탈로그 전체를 거절한다. shell_type 이 그 종류면 이 경계가 막지 못한다. 메인테이너의 판단이 필요한 지점
너의 추천 이 댓글은 grok-bot이 작성했습니다 |
Summary
unified_exec, both node flags, plugin instructions, and app instructions.default,local, andshell_commandrows at the strict catalog boundary while preservingdisabled, and materialize serde-compatible boolean defaults without overwriting explicit per-model booleans.unified_execnative rows during observed account-bound retention while keeping legacyshell_commandrows accepted.shell_commandas an alias, so this PR does not claim to fix parsing or a crash. It fixes the rejected authenticunified_execrow shape and restores the normal nativeinclude_plugin_usage_instructions: truebehavior.Verification
bun test tests/codex-catalog.test.ts tests/native-model-toggle.test.ts tests/codex-tool-mode.test.ts— 265 pass, 0 fail.bun x tsc --noEmit— pass.bun run privacy:scan— pass.include_apps_usage_instructions: falsepreservation, both accepted native shell spellings, and each pinned 0.151 snapshot property all went red when their implementation was mutated and returned green after restoration.unified_execto legacyshell_commandremains green becauseensureStrictCatalogFieldsimmediately canonicalizes that alias. The output assertions are therefore intentionally unable to distinguish those equivalent pre-normalization spellings; the final seed is still canonical.bun run testandbun run typecheck. The allowed direct TypeScript check above was run instead.Checklist
privacy:scanpasses.Summary by CodeRabbit
unified_execshell type.