Breaking Changes
- Frontmatter: only YAML frontmatter is accepted. gray-matter picks a parser from the text right after the opening
---, and itsjavascriptengine ran the block througheval(), so a file opening with---jsexecuted code as soon as Rulesync parsed it — including skills fetched withfetch/installand files read by the MCP server. Rulesync now refuses any fence language other than none,yamlorymlwith anUnsupported frontmatter languageerror. This also refuses---jsonfrontmatter, which gray-matter used to parse; rewrite such files with plain---YAML frontmatter (JSON objects are valid YAML). (#3553) - Hermes Agent: generated slash commands are renamed and no longer call
delegate_taskdirectly. Subagent commands are now/rulesync-subagent-<name>(was/rulesync_subagent_<slug>, which Hermes's gateway never resolved). Subagent and command plugins now queue their prompt as a user message throughctx.inject_message(), because a slash command has no parent agent fordelegate_task. In gateway sessions (messaging platforms, the TUI and Desktop, and the classic CLI in current Hermes development builds), Hermes accepts that injection only when you setplugins.entries.<plugin>.allow_gateway_injection: true. Rulesync does not set it for you. Regenerate to pick up the new plugins. (#3565)
What's Changed
New Features
- feat(androidstudio): add an Android Studio (Gemini) target —
.aiexcludeand.android-studio/skills/(project and global skills) (#3559) - feat(firebender): add a Firebender target — rules, commands, subagents (registered in
firebender.json), skills, hooks, MCP and ignore, in project and global scope (#3560) - feat(xum): add a Xum target —
.xum/AGENTS.mdrules, agents, skills andmcp.jsonc, in project and global scope (#3561)
Bug Fixes
- fix(security): refuse executable frontmatter languages (#3553)
- fix(hermesagent): make subagent and command slash commands reachable and runnable (#3565)
- fix(zcode): import every
oauthobject aszcodeOauth, so a non-ZCode secret never reaches other targets' configs (#3555)
Other Changes
- fix(ci): skip bot authors in the contributor policy (#3550)
- test(ci): locate the contributor policy step by name (#3558)
- test(pr-policy): tighten the policy test and document the bot exemption (#3564)
- docs(skills): point draft-release at
getVersioninsrc/cli/program.ts(#3554) - chore: update Homebrew formula to v38.0.0 (#3552)
Dependencies
- chore(deps): bump the all-dependencies group with 21 updates (#3533)
Contributors
Full Changelog: v38.0.0...v39.0.0