Skip to content

v0.26.0 | CC 2.1.62

Choose a tag to compare

@guess guess released this 27 Feb 16:20
· 136 commits to main since this release

Added

  • All subagent frontmatter fields on ClaudeCode.Agent — Added disallowed_tools, permission_mode, max_turns, skills, mcp_servers, hooks, memory, background, and isolation fields. Uses existing ClaudeCode.Types.permission_mode() atoms and new atom types for memory (:user | :project | :local) and isolation (:worktree). Also adds agent/1 test factory to ClaudeCode.Test.Factory. ([1e2fb95])
  • Result metadata in ClaudeCode.Stream.collect/1 — The summary map now includes session_id, usage, total_cost_usd, stop_reason, and num_turns from the result message, so callers can track costs, resume sessions, and understand why a conversation ended. ([7444177])
  • replay_user_messages option — Support the --replay-user-messages CLI flag which re-emits user messages from stdin back on stdout, useful for synchronization in bidirectional streaming conversations. ([caf6c1d])
  • is_replay and is_synthetic fields on ClaudeCode.Message.UserMessage — Track whether a user message is a replay or synthetic message from the CLI. Both fields default to nil.

Changed

  • Bundled CLI version bumped to 2.1.62 — Updated from 2.1.59 to 2.1.62.
  • Removed :request_timeout, renamed :stream_timeout back to :timeout — Since :request_timeout has been removed (use Task.yield for wall-clock caps externally), there's only one timeout again, so the simpler :timeout name is restored. Default remains :infinity. The :stream_timeout and :request_timeout options are no longer accepted.
  • :max_output_tokens in ClaudeCode.Message.AssistantMessage error type — Added explicit typespec entry and match clause for the max_output_tokens error, previously handled by a catch-all.

Fixed

  • Interrupt sent before closing port — On terminate, the adapter now sends an interrupt control request to the CLI before closing the port, preventing continued API token consumption. ([3a93f43])
  • User environment variables take precedence over SDK defaults — Fixed Map.merge order so user-provided environment variables override SDK-injected ones instead of the reverse. ([7385c03])