From ba0fa978a9d67e25d4f14ec4ed43bb1073621fc8 Mon Sep 17 00:00:00 2001 From: 1fanwang <1fannnw@gmail.com> Date: Tue, 8 Sep 2026 08:33:41 -0700 Subject: [PATCH 1/2] Document the WebSocket responses opt-out Models advertising a WebSocket responses endpoint use it by default, and the environment variable that falls back to the HTTP transport is not listed anywhere users can find it. It is the documented recovery for networks that block WebSocket connections and for sessions that start failing with a connection-bound input item ID error. Signed-off-by: 1fanwang <1fannnw@gmail.com> --- README.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/README.md b/README.md index 347cf2dc..f29e1100 100644 --- a/README.md +++ b/README.md @@ -121,6 +121,20 @@ Launch `copilot` in a folder that contains code you want to work with. By default, `copilot` utilizes Claude Sonnet 4.5. Run the `/model` slash command to choose from other available models, including Claude Sonnet 4 and GPT-5. +#### Falling back to the HTTP responses transport + +Models that advertise a WebSocket responses endpoint use it by default. If your +network blocks WebSocket connections, or a session starts failing with +`400 input item ID does not belong to this connection`, set this variable to use +the HTTP responses transport instead: + +```bash +export COPILOT_CLI_DISABLE_WEBSOCKET_RESPONSES=true +``` + +This is the environment equivalent of the SDK's `capi.enableWebSocketResponses` +session option. + ### Experimental Mode Experimental mode enables access to new features that are still in development. You can activate experimental mode by: From d446294b87fccebeee85f18634ba9931cc0173e5 Mon Sep 17 00:00:00 2001 From: 1fanwang <1fannnw@gmail.com> Date: Tue, 8 Sep 2026 08:45:45 -0700 Subject: [PATCH 2/2] Add PowerShell form and clarify the SDK option polarity The README documents Windows support but the workaround only had POSIX export syntax, and calling it equivalent to the SDK option was ambiguous because the two have opposite polarity. Signed-off-by: 1fanwang <1fannnw@gmail.com> --- README.md | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index f29e1100..946919d3 100644 --- a/README.md +++ b/README.md @@ -132,8 +132,15 @@ the HTTP responses transport instead: export COPILOT_CLI_DISABLE_WEBSOCKET_RESPONSES=true ``` -This is the environment equivalent of the SDK's `capi.enableWebSocketResponses` -session option. +On Windows, using PowerShell: + +```powershell +$env:COPILOT_CLI_DISABLE_WEBSOCKET_RESPONSES = "true" +``` + +Setting this to `true` has the same effect as setting the SDK's +`capi.enableWebSocketResponses` session option to `false`. The two have opposite +polarity, so enabling this variable disables the WebSocket transport. ### Experimental Mode