Skip to content

v0.16.4

Choose a tag to compare

@ya-luotao ya-luotao released this 23 Apr 11:40
· 691 commits to main since this release
39a98cc

Fixed

  • Client#receive_response no longer hangs in interactive Client mode. The 0.16.1 flag-based fix relied on the loop draining via the transport's :end sentinel, which only arrives when the CLI subprocess exits — true for one-shot query() but never for a Client whose CLI stays alive between turns. receive_response now drives QueryHandler#receive_messages directly so its break runs on the same fiber as the underlying Async::Queue#dequeue loop and unwinds it. The 0.16.1 regression spec passed only because its stub iterated a finite array; replaced with a real Async::Queue driven from a sibling task so a hang now fails the test.

Internal

  • FiberBoundary doc-comment now warns that break/return/next cannot cross the thread hop, so SDK-internal loops yielding user callbacks must keep loop control on the outer side of the boundary.

What's changed

  • #31 Fix Client#receive_response hang in interactive mode + bump to 0.16.4 — @ya-luotao

Full Changelog: v0.16.3...v0.16.4


gem install claude-agent-sdk -v 0.16.4