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.
Summary
GitHub Copilot's
/responseswire is not protocol-compatible with Responses clients for thevscode-chatintegration:response.function_call_arguments.deltaevents carry ciphertextdeltaplus anobfuscationfield.encrypted_content(GitHub's own scheme) with no plaintext summary; clients cannot decrypt them and stay stuck on "thinking".response.completedpayload disagrees with the streamed events (call_idis 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 beforedone, neutralize encrypted reasoning items with an empty plaintext summary, and pin response/item ids to first-seen values.