Repository navigation
v1.2.1
An internal release: three refactors that move duplicated or scattered logic into one private module each. No public API, signature (sig/) or documented behavior changes; one cleanup difference is noted below.
Changed
ClaudeAgentSDK.queryandClientshare one implementation of session setup, prompt writes, message delivery and teardown (SessionAssembly,@api private); a session's observers,callback_schedulingandcallback_wrappertravel in one object (Dispatch,@api private) instead of being passed at every call site. The documented differences between the two entry points are preserved and now pinned by specs that run both side by side. One cleanup difference: when aClientis reconnected while its previousdisconnectis still removing the materialized directory of a store-backed resume, the finishingdisconnectno longer clears the new session, so the new session's resume directory is removed by its owndisconnect(it used to be left behind). (#169)- The decision of when
query()may close stdin lives in one private class,Query::RunLifecycle;Queryfeeds it events and supplies the timer. Its specs go through that interface instead ofQuery's instance variables. (#168) - Hash-form option interpretation (
system_prompt,thinking,tools,output_format,task_budget,plugins,sandbox,mcp_servers,agents) lives in one private module,OptionForms; every existing per-option spelling and key policy is preserved as it was. (#167)
What's changed
- #167 Move Hash-form option interpretation into one private module (OptionForms) — @ya-luotao
- #168 Extract the run-end decision into Query::RunLifecycle — @ya-luotao
- #169 Share one session assembly between query() and Client — @ya-luotao
Full Changelog: v1.2.0...v1.2.1
gem install claude-agent-sdk -v 1.2.1