Skip to content

GitHub Copilot streamed tool-call arguments are obfuscated, stalling agentic turns in Codex clients #989

Description

@Simon-Opopeee

Summary

GitHub Copilot's /responses wire is not protocol-compatible with Responses clients for the vscode-chat integration:

  • Streamed response.function_call_arguments.delta events carry ciphertext delta plus an obfuscation field.
  • Reasoning items ship as encrypted_content (GitHub's own scheme) with no plaintext summary; clients cannot decrypt them and stay stuck on "thinking".
  • The response id and every item id are re-encrypted per event, so the terminal response.completed payload disagrees with the streamed events (call_id is the only stable field).

Impact

Any Responses-only Copilot model (gpt-5.6-luna, gpt-5.6-sol, gpt-5.6-terra, gpt-5.4, gpt-5.4-mini, gpt-5.5, gpt-5.3-codex — see #748) stalls agentic turns in Codex clients: reasoning never finishes and tool calls are unreadable. Plain text works.

Fix

Provider-scoped SSE rewrite for github-copilot (PR #990): drop ciphertext deltas and re-emit plaintext arguments before done, neutralize encrypted reasoning items with an empty plaintext summary, and pin response/item ids to first-seen values.

Metadata

Metadata

Assignees

No one assigned

    Labels

    toolstool_calls, MCP, web-search / sidecar tools

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions