Skip to content

Commit 2eec6a0

Browse files
dicksontsairushilpatel0
authored andcommitted
Remove hardcoded timeout for control messages to match Typescript SDK
Signed-off-by: Rushil Patel <[email protected]>
1 parent 3a22f48 commit 2eec6a0

File tree

2 files changed

+10
-14
lines changed

2 files changed

+10
-14
lines changed

src/claude_code_sdk/_errors.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
"""Error types for Claude SDK."""
22

3+
from typing import Any
4+
35

46
class ClaudeSDKError(Exception):
57
"""Base exception for all Claude SDK errors."""
@@ -49,6 +51,6 @@ def __init__(self, line: str, original_error: Exception):
4951
class MessageParseError(ClaudeSDKError):
5052
"""Raised when unable to parse a message from CLI output."""
5153

52-
def __init__(self, message: str, data: dict | None = None):
54+
def __init__(self, message: str, data: dict[str, Any] | None = None):
5355
self.data = data
5456
super().__init__(message)

src/claude_code_sdk/_internal/transport/subprocess_cli.py

Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -404,19 +404,13 @@ async def _send_control_request(self, request: dict[str, Any]) -> dict[str, Any]
404404
# Send request
405405
await self._stdin_stream.send(json.dumps(control_request) + "\n")
406406

407-
# Wait for response with timeout
408-
try:
409-
with anyio.fail_after(30.0): # 30 second timeout
410-
while request_id not in self._pending_control_responses:
411-
await anyio.sleep(0.1)
407+
# Wait for response
408+
while request_id not in self._pending_control_responses:
409+
await anyio.sleep(0.1)
412410

413-
response = self._pending_control_responses.pop(request_id)
411+
response = self._pending_control_responses.pop(request_id)
414412

415-
if response.get("subtype") == "error":
416-
raise CLIConnectionError(
417-
f"Control request failed: {response.get('error')}"
418-
)
413+
if response.get("subtype") == "error":
414+
raise CLIConnectionError(f"Control request failed: {response.get('error')}")
419415

420-
return response
421-
except TimeoutError:
422-
raise CLIConnectionError("Control request timed out") from None
416+
return response

0 commit comments

Comments
 (0)