Skip to content

CI run for upstream PR lidge-jun/opencodex#3917 - #1

Draft
mashfromband wants to merge 1 commit into
devfrom
fix/routed-agent-message-normalize
Draft

CI run for upstream PR lidge-jun/opencodex#3917#1
mashfromband wants to merge 1 commit into
devfrom
fix/routed-agent-message-normalize

Conversation

@mashfromband

Copy link
Copy Markdown
Owner

Contributor-run cross-platform CI for lidge-jun#3917. Not for merge here.

@github-actions github-actions Bot added the chore label Sep 7, 2026
@github-actions

github-actions Bot commented Sep 7, 2026

Copy link
Copy Markdown

Deterministic PR hygiene checks passed.

@github-actions

github-actions Bot commented Sep 7, 2026

Copy link
Copy Markdown

⏳ DRAFT

  • PR description needs work (thin).

What to do

  • Add a real Summary and Test plan to the PR description.

This pull request was already a draft. Its draft status will be preserved after every issue above is resolved.

@github-actions
github-actions Bot marked this pull request as draft September 7, 2026 14:55
… destination

`agent_message` is Codex's private multi-agent input item and exists only in the
ChatGPT Codex backend's schema. Codex writes every sub-agent reply into the
rollout, so it is replayed in the `input` of every later turn of that thread. A
routed Responses destination answers the whole body with
`422 unknown item type "agent_message"`, and 422 is a client error nothing fails
over, so the thread stays broken until the history is dropped.

The plaintext conversion already existed but was scoped to the OpenCode Go
destination. Nothing about the rejection is destination-specific, so the
conversion now applies to every destination with `authMode` other than
"forward". Forward destinations keep the item unchanged, and genuine ciphertext
and unknown part types keep their existing fail-closed path; the encrypted v2
task surface still owns those through `unreadable_encrypted_agent_task` and the
opt-in recovery route.

`isOpenCodeGo` existed only to scope this call and is removed with it. The
helper and its tests move to destination-neutral names.

Opaque-blob recovery repairs an undecryptable part into an omission marker,
which leaves the item entirely plaintext; on a routed retry it is now converted
too, which is what lets that retry be accepted at all.

Fixes lidge-jun#3911
@mashfromband
mashfromband force-pushed the fix/routed-agent-message-normalize branch from 21eaaf9 to 2430724 Compare September 7, 2026 15:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant