Skip to content

v0.29.0

Choose a tag to compare

@ya-luotao ya-luotao released this 08 Aug 18:09
· 549 commits to main since this release

Fixed

  • Skill names in ClaudeAgentOptions#skills are now validated (port of Python SDK #1145, v0.2.129). Names were formatted into the --allowedTools value unchecked; the CLI splits that value into permission rules on commas and spaces outside parentheses with no escape sequences, so a name carrying a delimiter could not be passed through reliably. The command builder now validates each name and fails closed with ArgumentError (TypeError for non-String entries). Rejected: parentheses, commas, control characters (C0, DEL, C1), U+FEFF, empty names; a literal * and wildcard suffixes (:*, *); and shapes that parse but can never match the listed skill — surrounding whitespace (Unicode-aware), a leading /, consecutive backslashes, a trailing unpaired backslash, and byte sequences that cannot form valid UTF-8. Ordinary names are unaffected, including plugin-qualified names, interior spaces, single backslashes, and non-ASCII.

Breaking: skills: ['*'] and skills: ['plugin:*'] now raise — use skills: 'all', or a Skill(...) rule in allowed_tools for prefix matching. skills: [' name'] and skills: ['/name'] now raise as well; both previously built a rule that could never match, so the skill was silently unavailable.

This brings the Ruby SDK to parity with Python SDK v0.2.134 (the rest of the v0.2.129–v0.2.134 range is bundled-CLI version bumps, not applicable to the gem).

What's changed

  • #53 Sync with Python SDK v0.2.134: validate skill names in ClaudeAgentOptions#skills — @ya-luotao

Full Changelog: v0.28.0...v0.29.0


gem install claude-agent-sdk -v 0.29.0