Skip to content

fix(provider): recover Codex parallel call arguments sent only on done - #1414

Merged
TheGreatAxios merged 1 commit into
mainfrom
cl-10582-codex-parallel-tool-calls-arrive-with-empty-arguments-when
Oct 13, 2026
Merged

TheGreatAxios merged 1 commit into
mainfrom
cl-10582-codex-parallel-tool-calls-arrive-with-empty-arguments-when

Conversation

@bwachman

Copy link
Copy Markdown
Contributor

Summary

  • On Codex, a response with several tool calls now delivers every call's arguments even when the backend sends them only on response.output_item.done and streams no function_call_arguments.delta events. Calls that do stream deltas are unchanged.
  • The replay lives next to withParallelToolCalls, the host override that turns parallel calls on for Codex, because that override is what exposes this backend behavior; the packaged parser reads arguments from deltas alone.

Without this, the Codex backend's no-delta path reaches the tools with every call's arguments as {} (the harness assembles an empty buffer as {}), so parallel fan-outs such as several spawn_agent calls fail argument validation and nothing starts.

Verification

  • bun run check passes (lint, typecheck, dead exports, build, full test suite: 8665 pass, 0 fail)
  • New golden fixture parallel-tools-arguments-on-done.json reproduces the no-delta shape; its test fails without the change and passes with it, and the existing streamed-call fixture produces the same events as before
  • Replaying a captured live Codex response from the no-delta path yields all three call arguments with the change and none without it
  • A live headless run on codex/plus (gpt-5.6-terra) that hit the no-delta path read three files in parallel with full arguments on the first attempt

Fixes CL-10582

@corbits-triage

Copy link
Copy Markdown
Contributor

No changes needed from you. A maintainer will review this pull request.

@linear-code

linear-code Bot commented Oct 13, 2026

Copy link
Copy Markdown

CL-10582

@TheGreatAxios
TheGreatAxios merged commit dc4fd1c into main Oct 13, 2026
13 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants