Repository navigation
Conversation
… message ChatGPT sharing rejects an unsupported input item with prose that lists "additional tools" as supported and ends "Remove unsupported input items", so the `additional_tools` check never matched and users saw the generic "Codex used a feature" message. Match "input item" instead.
|
No actionable comments were generated in the recent review. Walkthrough
Merge Risk:
|
ApprovabilityVerdict: Approved at Macroscope's review found this PR approvable — ChatGPT sharing input-item rejections now select the existing, specific error message using the provider’s actual wording. Error codes and handling remain unchanged, limiting the impact to clearer failure messaging. You can add or adjust custom eligibility rules. Learn more. |
Problem
When ChatGPT sharing rejects an input item, T3 shows the vague "Codex used a feature that ChatGPT sharing does not support" instead of its own more specific "Codex sent an input item…" message. I hit this on 0.1.10-nightly (macOS) after Codex subagents ran under Connect with ChatGPT. The raw rejection in the provider log was:
{"message": "User subscription sharing currently supports only text, image, and file messages, item references, additional tools, compaction summaries, reasoning items, Web Search call items, developer function and custom tool call items, and programmatic tool calling items. Remove unsupported input items or use an API key instead.", "type": "invalid_request_error", "param": "input", "code": "subscription_sharing_unsupported_capability"}classifyCodexManagedErrorpicks the input-item message only when the text containsadditional_tools. ChatGPT's real wording never contains that string: it lists "additional tools" as supported and ends with "Remove unsupported input items", so the specific branch never fires.Change
Match
input iteminstead ofadditional_tools. The existinginput item 'additional_tools' is not supportedfixture still matches, and thetool 'namespace'branch still runs first.Scope
A small fix for an obvious bug in one function, so no issue. It is independent of #28143: that PR stops one source of these rejections (native subagents), while this one makes any input-item rejection report what it is.
Verification
distinguishes unsupported tools from input itemstable. Onmainit fails withexpected 'Codex used a feature that ChatGPT sha…' to include 'input item'; with the fix the file passes 6/6.payload.errorshapeCodexAdapterV2receives (the response as a JSON string inmessage,codexErrorInfo: "other"):vp run check:changedpasses: format, lint, both knip passes, typecheck (41 packages) and the selected tests. This ran on Node 22.23.3, not the pinned 26.12.1.failure.messagefield.Created with Claude Opus 5.5 in Claude Code, running inside T3 Code.