Bug Fixes
- Zombie CLI subprocess prevention: Shielded subprocess cleanup from asyncio cancellation so
SIGTERM/SIGKILLteardown always runs, preventing orphanedclaudechild processes when the parent task is cancelled (#1082) - Silent whitespace loss on large NDJSON lines: Fixed the NDJSON parser silently dropping whitespace when a single line exceeded the 64 KiB stream buffer, which could corrupt tool output or assistant message content (#1083)
- TypeError on non-dict message content: Fixed an uncaught
TypeErrorwhen the CLI emits a message whosecontentfield is a plain string or other non-dict value instead of the expected list of content blocks (#1058) can_use_toolshadowed byallowed_tools: Added a runtime warning when acan_use_toolcallback is registered alongsideallowed_toolsorbypassPermissions, which silently prevents the callback from ever firing (#1081)
Internal/Other Changes
- Updated bundled Claude CLI to version 2.1.202
- Fixed e2e stderr test flakiness by running the query from a clean working directory (#1084)
PyPI: https://pypi.org/project/claude-agent-sdk/0.2.111/
pip install claude-agent-sdk==0.2.111