docs: audit Codex wire-contract parity for the OpenAI dialect - #644
docs: audit Codex wire-contract parity for the OpenAI dialect#644mpscholten wants to merge 1 commit into
Conversation
Field-by-field comparison of our Responses requests against codex-rs (reference checkout 4f39251), motivated by the gpt-5.6-sol runaway tool-argument sessions. Wire parameters, the Responses Lite prefix, and the AGENTS.md wrapper already match; the real drift is structural: gpt-5.6-* run code_mode_only with unified exec_command in Codex while we expose an earlier-generation shell_command function tool and a custom prompt instead of the per-model catalog instructions template. Records the matching surface, the drift ranked by impact with recommendations, the intentional divergences, and the verified non-issue around hallucinated member/task worktree paths. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: ac876f487c
ℹ️ 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".
|
|
||
| - **Runaway guards.** Codex has *no* client-side repetition or | ||
| argument-volume guard (audited: only output truncation caps). Our | ||
| argument-stream activity, 100k-char warnings, and 300k-char abort (#641) |
There was a problem hiding this comment.
Remove the nonexistent 300k abort claim
The #641 guard does not abort a response at 300k characters. countToolArgumentChars in Agent.Responses.LoopBackend only emits WarningRaised every 100,000 characters and allows streaming to continue until the provider limit or a manual cancellation. This statement, together with the earlier recommendation to rely on the current guards, incorrectly tells maintainers that runaway generations are automatically bounded.
Useful? React with 👍 / 👎.
Field-by-field audit of our Responses requests against codex-rs (reference checkout
4f39251), motivated by the gpt-5.6-sol runaway sessions (#641).Findings:
additional_tools+functionsnamespace), and the AGENTS.md wrapper already match Codex exactly.tool_mode: code_mode_onlywith unifiedexec_command/write_stdinin Codex (noshell_commandexists there any more — it survives only as a serde alias), and instructions come from the per-model cataloginstructions_template(sol: 17.7k chars) rather than a static prompt. Our direct-function-call surface is one generation behind for these models, which is the most plausible reason the same model degenerates more often here than under Codex.member_/task_nested worktree path from the 220 KB runaway does not exist on disk; our worktree layout is flat, so no layout change is needed.Recommended follow-ups are listed by impact (code mode,
exec_commandmigration, catalog instructions,<environment_context>,prompt_cache_key).🤖 Generated with Claude Code