fix(copilot-acp): disable streaming path for CopilotACPClient
CopilotACPClient communicates via subprocess stdio and returns a plain SimpleNamespace from _create_chat_completion(). The streaming path tries to iterate this as a stream, crashing with: TypeError: 'types.SimpleNamespace' object is not iterable Mirror the existing ACP exclusion pattern (used for Responses API upgrade) to disable streaming when provider is copilot-acp or base_url starts with acp:// or acp+tcp://. Based on PR #9428 by @ningfangbin and issue #16271 by @Joseph19820124. Fixes #16271
This commit is contained in:
10
run_agent.py
10
run_agent.py
@@ -10593,6 +10593,16 @@ class AIAgent:
|
||||
# session instead of re-failing every retry.
|
||||
if getattr(self, "_disable_streaming", False):
|
||||
_use_streaming = False
|
||||
# CopilotACPClient communicates via subprocess stdio and
|
||||
# returns a plain SimpleNamespace — not an iterable
|
||||
# stream. Mirror the ACP exclusion used for Responses
|
||||
# API upgrade (lines ~1083-1085).
|
||||
elif (
|
||||
self.provider == "copilot-acp"
|
||||
or str(self.base_url or "").lower().startswith("acp://copilot")
|
||||
or str(self.base_url or "").lower().startswith("acp+tcp://")
|
||||
):
|
||||
_use_streaming = False
|
||||
elif not self._has_stream_consumers():
|
||||
# No display/TTS consumer. Still prefer streaming for
|
||||
# health checking, but skip for Mock clients in tests
|
||||
|
||||
Reference in New Issue
Block a user