Repository navigation
v0.29.0
Fixed
- Skill names in
ClaudeAgentOptions#skillsare now validated (port of Python SDK #1145, v0.2.129). Names were formatted into the--allowedToolsvalue 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 withArgumentError(TypeErrorfor 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: ['*']andskills: ['plugin:*']now raise — useskills: 'all', or aSkill(...)rule inallowed_toolsfor prefix matching.skills: [' name']andskills: ['/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