Skip to content

Responses fold accepts mismatched tool item IDs and contradictory done arguments #331

Closed

Description

@acoliver

Independent native review found a current, pre-existing Responses framing defect while reviewing the narrow raw-argument preservation fix in #330. This is not a regression from that patch and does not establish the historical #326 cause.

At vendor/serdes-ai-responses/src/client/assembler.rs:76–91, argument-delta item identity and argument-done contents are dropped. The fold at client/mod.rs:674–693 uses output index and ignores part-end events. Two compiled loopback probes against immutable 6d142ae9 produced a successful object-valued tool call:

  1. Start item item-0 at output index 0, then send {"path":"."} with item_id: "other-item" at the same index, followed by normal completion.
  2. Send legitimate object-valued delta {"path":"."}, then argument-done for that item with contradictory arguments: "[]", followed by normal completion.

Both returned call-0/list_directory/{"path":"."}. The probe counted one HTTP request and checked an empty replay window. No tool was actually dispatched, but source trace and compiled host validation establish that the returned call passes strict object/ID admission. Affected Responses and validation sources are byte-identical to main f4adda82.

Evidence: branch-2/evalwork/results/pr-landing-20261003/review326-evidence/{probe.rs,probe-fresh.log,wrong-item-id.sse,contradictory-done.sse,baseline-boundary-binding.txt}; full finding in review326.md.

Repair at the owning lifecycle boundary: verify item/index identity and consistent completion evidence before releasing a successful folded response. Reject contradictions as nonretryable; do not replace delta bytes with done arguments, repair JSON or replay an accepted request. Preserve existing SSE/EOF/assertion/quality gates. No upstream third-party filing requested.

Activity

  1. added
    luthor-readyExplicitly eligible for supervised Luthor issue-to-PR dispatch
    on Oct 4, 2026
  2. self-assigned this
    on Oct 9, 2026
  3. moved this from Todo to In Progress in LLxprt Roadmapon Oct 10, 2026
  4. moved this from In Progress to Done in LLxprt Roadmapon Oct 11, 2026
  5. removed
    luthor-readyExplicitly eligible for supervised Luthor issue-to-PR dispatch
    on Oct 15, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions