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.

Activity

  1. github-actions commented on Aug 4, 2026

    @github-actions
    Contributor

    Automated translation bookkeeping — detected language: unknown.

  2. Simon-Opopeee commented on Aug 4, 2026

    @Simon-Opopeee
    ContributorAuthor

    Fix implemented and opened: #990

  3. github-actions commented on Aug 4, 2026

    @github-actions
    Contributor

    Issue closed: use an issue template

    Thanks for taking the time to submit this issue. It was closed automatically because it was not opened with a recognized issue template (Bug report, Feature request, Documentation, or Provider compatibility). Freeform and API-opened issues cannot skip this check.

    • This issue does not use a recognized issue template.

    Please edit the issue to add:

    • Open a new issue with the Bug report, Feature request, Documentation, or Provider compatibility template.
    • Or edit this issue so the body uses the template section headings for the kind of report you are filing.

    See the Contributing guide for details.

    Once the report passes the automated checks, it will be reopened automatically unless a maintainer has changed its state.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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